Re: pread and EACCES error?
Re: pread and EACCES error?
- Subject: Re: pread and EACCES error?
- From: Brian Bergstrand <email@hidden>
- Date: Thu, 21 May 2009 23:53:28 +0300
Hi Ed,
On May 21, 2009, at 10:42 PM, Ed Wynne wrote:
On May 20, 2009, at 2:55 AM, Brian Bergstrand wrote:
Hi all, I'm seeing a weird error from pread in the following setup:
Copying from a 300GB PATA drive connected via USB to another 300GB
ATA drive connected via Firewire using the raw char devices for
each. After copying about 37GB of data, pread fails on the source
USB drive with EACCES (13). According to the man page, this is not
a valid error return (although the man page may be out of date).
The copy is done in DKIOCGETMAXBLOCKCOUNTREAD chunks (128KB for ATA).
So where is the EACCES coming from? The IOKit block drivers? And
what does it mean in this situation?
Mac OS X 10.5.7 (Darwin 9.7) on Intel.
Thanks for any help?_______________________________________________
Hey Brian,
Potentially strange question... have you tried retrying the failed
read? Or retrying after deblocking it to something smaller? Even
better would be to watch an ATA or USB bus trace of the failed read.
I suspect your issue is originating in the USB bridge, or the USB
stack talking to the USB bridge. I'd bet something odd is happening
and its bubbling up as the EACCES return. Also, you didn't say the
drive was dead after this happens, so I suspect it's something
transient.
I've seen this type of thing crop up from time to time with various
USB access paths to optical devices. Scary as all get out.
-Ed
Yes, I was thinking the same thing and we told the customer about as
much. I was just wondering if there was a code path in the kernel that
could return this error. I will add a retry and see where that gets us.
Thanks.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden