System is flooded with failed read(2) calls: Resource temporarily unavailable (errno=35) coming from xorg unix socket

Yuri yuri at rawbw.com
Tue Jul 3 03:23:40 UTC 2012


On 07/02/2012 15:32, Alexander Kabaev wrote:
> Pardon my possibly naive question, but isn't using errno to detect
> whether the syscall is succesful a wrong techique? Syscall will NOT
> change errno unless unless it actually failed, so unless dtrace's errno
> emulation is more magic than I thought, your script will mistakenly
> attribute error code coming from a distant past to syscalls just
> complete with no errors?

I didn't think about this at all, just picked this script from some website.
But now I did an experiment: in the test process I placed on failing 
open(2) call and next to it a succeeding one.
And this dtrace script only shows one failed open(2) call, not two as 
you would expect if errno was indeed preserved between them.

So maybe there is some magic to it in dtrace functionality.

Someone more familiar with the matter maybe can explain this.

Yuri


More information about the freebsd-hackers mailing list