From: Jens Axboe <[email protected]>
To: Joseph Christopher Sible <[email protected]>,
"'[email protected]'" <[email protected]>
Subject: Re: Spurious/undocumented EINTR from io_uring_enter
Date: Wed, 8 Apr 2020 10:49:23 -0700 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
On 4/8/20 9:41 AM, Joseph Christopher Sible wrote:
> On 4/7/20 5:42 PM, Jens Axboe wrote:
>> Lots of system calls return -EINTR if interrupted by a signal, don't
>> think there's anything worth fixing there. For the wait part, the
>> application may want to handle the signal before we can wait again.
>> We can't go to sleep with a pending signal.
>
> This seems to be an unambiguous bug, at least according to the BUGS
> section of the ptrace man page. The behavior of epoll_wait is explicitly
> called out as being buggy/wrong, and we're emulating its behavior. As
> for the application wanting to handle the signal, in those cases, it
> would choose to install a signal handler, in which case I absolutely
> agree that returning -EINTR is the right thing to do. I'm only talking
> about the case where the application didn't choose to install a signal
> handler (and the signal would have been completely invisible to the
> process had it not been being traced).
So what do you suggest? The only recurse the kernel has is to flush
signals, which would just delete the signal completely. It's a wait
operation, and you cannot wait with signals pending. The only
wait to retry is to return the number of events we already got, or
-EINTR if we got none, and return to userspace. That'll ensure the
signal gets handled, and the app must then call wait again if it
wants to wait for more.
There's no "emulating behavior" here, you make it sound like we're
trying to be bug compatible with some random other system call.
That's not the case at all.
--
Jens Axboe
next prev parent reply other threads:[~2020-04-08 17:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 20:36 Spurious/undocumented EINTR from io_uring_enter Joseph Christopher Sible
2020-04-07 21:41 ` Jens Axboe
2020-04-08 16:41 ` Joseph Christopher Sible
2020-04-08 17:49 ` Jens Axboe [this message]
2020-04-08 18:57 ` Joseph Christopher Sible
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox