GNU bug report logs - #33839
26.1.90; Emacs occasionally fails to receive asynchronous subprocess output in batch mode

Previous Next

Package: emacs;

Reported by: Philipp <p.stephani2 <at> gmail.com>

Date: Sun, 23 Dec 2018 02:30:03 UTC

Severity: normal

Fixed in version 26.1.90

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 33839 <at> debbugs.gnu.org (full text, mbox):

From: Philipp Stephani <p.stephani2 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 33839 <at> debbugs.gnu.org
Subject: Re: bug#33839: 26.1.90; Emacs occasionally fails to receive
 asynchronous subprocess output in batch mode
Date: Sun, 23 Dec 2018 17:45:31 +0100
Am So., 23. Dez. 2018 um 16:22 Uhr schrieb Eli Zaretskii <eliz <at> gnu.org>:
>
> > From: Philipp <p.stephani2 <at> gmail.com>
> > Date: Sun, 23 Dec 2018 03:28:53 +0100
> >
> > (with-temp-buffer
> >   (let ((proc (make-process :name "test"
> >                             :command '("bash" "-c" "echo stdout; echo stderr >&2")
> >                             :buffer (current-buffer)
> >                             :connection-type 'pipe
> >                             :sentinel #'ignore
> >                             :noquery t
> >                             :coding '(utf-8-unix . utf-8-unix))))
> >     (when (process-live-p proc)
> >       (process-send-eof proc))
> >     (while (process-live-p proc)
> >       (accept-process-output proc))
> >     (cl-assert (equal (buffer-string) "stdout\nstderr\n") :show-args)))
> >
> > Then evaluate this form repeatedly.  Occasionally the buffer is empty
> > and the assertion triggers.
>
> Isn't there an inherent race condition here?

Maybe? If so, then it should be documented, with an explanation how to
write this in a race-free manner. (It seems waiting for the process
sentinel to run works reliably.)




This bug report was last modified 6 years and 144 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.