GNU bug report logs -
#6074
accept-process-output on listening sockets cause non-interruptible infloop
Previous Next
Reported by: Helmut Eller <eller.helmut <at> gmail.com>
Date: Sat, 1 May 2010 22:18:01 UTC
Severity: normal
Tags: confirmed, fixed
Found in versions 24.0.50, 25.2
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 6074 <at> debbugs.gnu.org (full text, mbox):
Pip Cet <pipcet <at> gmail.com> writes:
> Why would we try again after receiving EINVAL? I believe the right
> behavior is to return immediately in this case, just as we do for EIO.
>
> However, we should probably call rarely_quit inside the loop, anyway,
> to catch the case of a kernel bug keeping us busy with EINTRs. How's
> this?
[...]
> {
> + unsigned int count = 0;
> XSETPROCESS (proc, wait_proc);
>
> while (true)
> {
> int nread = read_process_output (proc, wait_proc->infd);
> + rarely_quit (++count);
> if (nread < 0)
> {
> - if (errno == EIO || would_block (errno))
> + if (errno != EINTR)
> break;
> }
> else
There was no followup on this patch at the time (except Richard chiding
you for using forbidden terminology), but I tried the patch now, and it
seems to fix the issue, so I've applied it to the trunk now.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 4 years and 310 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.