lkml.org 
[lkml]   [2008]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: strace, accept(), ERESTARTSYS and EINTR
From
Andreas Schwab wrote:
> "Phil Endecott" <phil_wueww_endecott@chezphil.org> writes:
>> Andreas Schwab wrote:
>>> "Phil Endecott" <phil_wueww_endecott@chezphil.org> writes:
>>>> However, there's a lot of code and I know that there are bugs in it. I
>>>> just want to focus on the kernel-related issue that the strace fragment
>>>> that I posted brings up: even if my user code gets completely screwed up
>>>> (corrupts its stack, runs out of FDs/VM/threads etc), I don't think that I
>>>> should see in the strace output that accept() has returned
>>>> ERESTARTSYS.
>>>
>>> strace always sees the raw return value, before the signal handler is
>>> executed and before the check for syscall restart is done.
>>
>> Yes, but I should see the real final return value in another strace output
>> line before I see that thread doing something else. Correct?
>
> No. As far as strace is concerned the syscall has finished. Since it
> isn't restarted, you won't see it again in the trace.

Sorry for being dense, but what is the implication of your comment
"Since it isn't restarted" ? Are you saying that the kernel isn't
going to restart it and will have converted it to EINTR and returned
that to user-space, and that this modified return value is not reported
by strace?


Phil.






\
 
 \ /
  Last update: 2008-01-05 20:37    [W:0.051 / U:1.268 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site