GNU bug report logs - #44642
27.1; read-string does not signal on EOF after calling server-eval-at

Previous Next

Package: emacs;

Reported by: Chris Hunt <chrahunt <at> gmail.com>

Date: Sat, 14 Nov 2020 18:16:01 UTC

Severity: normal

Found in version 27.1

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chris Hunt <chrahunt <at> gmail.com>
Cc: 44642 <at> debbugs.gnu.org
Subject: bug#44642: 27.1; read-string does not signal on EOF after calling server-eval-at
Date: Sat, 14 Nov 2020 21:58:37 +0200
> From: Chris Hunt <chrahunt <at> gmail.com>
> Date: Sat, 14 Nov 2020 14:42:30 -0500
> Cc: 44642 <at> debbugs.gnu.org
> 
> #3  getchar_unlocked () at /usr/include/x86_64-linux-gnu/bits/stdio.h:72
>         len = 0
>         line = 0x564dc6c07e30 "\240~\300\306MV"
>         val = <optimized out>
>         hide_char = <optimized out>
>         etty = {
>           main = {
>             c_iflag = 1107870600,
>             c_oflag = 3565618192,
>             c_cflag = 151023409,
>             c_lflag = 2300068360,
>             c_line = 131 '\203',
>             c_cc =
> "i\000\314\002!\202l\000\325\002!)0\207\317\326\002\"\210\002\207\000\000\000\352\203\373?Z\227\323\300",
>             c_ispeed = 22093,
>             c_ospeed = 0
>           }
>         }
>         size = 100
>         etty_valid = 2
>         val = <optimized out>
>         mini_frame = <optimized out>
>         minibuffer = <optimized out>
>         input_method = <optimized out>
>         enable_multibyte = <optimized out>
>         pos = 0
>         histstring = <optimized out>
>         histval = <optimized out>
>         empty_minibuf = <optimized out>
>         dummy = <optimized out>
> #4  read_minibuf_noninteractive (defalt=XIL(0), expflag=false,
> prompt=<optimized out>) at minibuf.c:218
>         len = 0
>         line = 0x564dc6c07e30 "\240~\300\306MV"
>         val = <optimized out>
>         hide_char = <optimized out>
>         etty = {
>           main = {
>             c_iflag = 1107870600,
>             c_oflag = 3565618192,
>             c_cflag = 151023409,
>             c_lflag = 2300068360,
>             c_line = 131 '\203',
>             c_cc =
> "i\000\314\002!\202l\000\325\002!)0\207\317\326\002\"\210\002\207\000\000\000\352\203\373?Z\227\323\300",
>             c_ispeed = 22093,
>             c_ospeed = 0
>           }
>         }
>         size = 100
>         etty_valid = 2
>         val = <optimized out>
>         mini_frame = <optimized out>
>         minibuffer = <optimized out>
>         input_method = <optimized out>
>         enable_multibyte = <optimized out>
>         pos = 0
>         histstring = <optimized out>
>         histval = <optimized out>
>         empty_minibuf = <optimized out>
>         dummy = <optimized out>
[...]
> Setting a breakpoint at minibuf.c:219 shows that line being hit
> repeatedly. `errno` is 4 (EINTR).

In that case, I see no bug here.  read_minibuf_noninteractive calls
'getchar'; if that is interrupted by a signal, we retry the call; thus
the infinite loop.  In your case, I'm guessing that the signal is
SIGPIPE, because the input of the Emacs process is from a pipe, and
the other side of the pipe exited.

If my analysis is correct, then your script setup needs to be modified
to not trigger this condition.




This bug report was last modified 4 years and 279 days ago.

Previous Next


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