unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
@ 2015-11-21 14:20 Davor Cubranic
  2019-10-14 19:55 ` Stefan Kangas
  0 siblings, 1 reply; 6+ messages in thread
From: Davor Cubranic @ 2015-11-21 14:20 UTC (permalink / raw)
  To: 21972

On FreeBSD, running:

  M-x shell-command
  /usr/local/bin/bash -i -c "echo hello"

hangs until you press C-g (twice). I can see the bash process running at
100% via `top` until C-g kills it.

Adding `--norc --noprofile` to the command still hangs, so it's not
anything about the shell initialization files. The `-i` option is the
key: without it, everything works fine.

Running the same command via `async-shell-command` does not hang: Bash
outputs "hello" in the "*Async Shell Command*" buffer and exits.

Both Emacs and Bash are standard FreeBSD 10 binary packages installed
via `pkg`. (emacs24-24.5_1,3 and bash-4.3.42, respectively).


In GNU Emacs 24.5.1 (amd64-portbld-freebsd10.1, GTK+ Version 2.24.28)
 of 2015-11-13 on builds.pcbsd.org
Windowing system distributor `The X.Org Foundation', version 11.0.11704000
Configured using:
 `configure --localstatedir=/var --disable-acl --with-dbus
 --without-file-notification --with-gconf --with-gif --with-gnutls
 --with-gsettings --with-jpeg --with-m17n-flt --with-imagemagick
 --with-libotf --with-png --with-toolkit-scroll-bars --with-rsvg
 --with-tiff --with-x --with-xft --with-xim --with-xml2 --with-xpm
 --with-x-toolkit=gtk2 --with-sound=oss --x-libraries=/usr/local/lib
 --x-includes=/usr/local/include --prefix=/usr/local
 --mandir=/usr/local/man --infodir=/usr/local/share/emacs/info/
 --build=amd64-portbld-freebsd10.1 'CFLAGS=-O2 -pipe -fstack-protector
 -fno-strict-aliasing' CPPFLAGS=-I/usr/local/include 'LDFLAGS=
 -L/usr/local/lib -Wl,-rpath=/usr/lib:/usr/local/lib -fstack-protector''

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 71124 7466)
 (symbols 48 17557 0)
 (miscs 40 33 88)
 (strings 32 9070 4601)
 (string-bytes 1 248833)
 (vectors 16 8904)
 (vector-slots 8 382922 19034)
 (floats 8 63 88)
 (intervals 56 201 7)
 (buffers 960 11))





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
  2015-11-21 14:20 bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD Davor Cubranic
@ 2019-10-14 19:55 ` Stefan Kangas
  2019-10-14 20:09   ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Kangas @ 2019-10-14 19:55 UTC (permalink / raw)
  To: Davor Cubranic; +Cc: 21972

Davor Cubranic <davor.cubranic@alumni.cs.ubc.ca> writes:

> On FreeBSD, running:
>
>   M-x shell-command
>   /usr/local/bin/bash -i -c "echo hello"

On GNU/Linux, the above gives me:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
hello

> hangs until you press C-g (twice). I can see the bash process running at
> 100% via `top` until C-g kills it.
>
> Adding `--norc --noprofile` to the command still hangs, so it's not
> anything about the shell initialization files. The `-i` option is the
> key: without it, everything works fine.
>
> Running the same command via `async-shell-command` does not hang: Bash
> outputs "hello" in the "*Async Shell Command*" buffer and exits.
>
> Both Emacs and Bash are standard FreeBSD 10 binary packages installed
> via `pkg`. (emacs24-24.5_1,3 and bash-4.3.42, respectively).

If bash hangs, shouldn't that be reported as a bug in bash instead?
Or should Emacs somehow do better with a hanging process?

Best regards,
Stefan Kangas





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
  2019-10-14 19:55 ` Stefan Kangas
@ 2019-10-14 20:09   ` Eli Zaretskii
  2019-10-14 20:50     ` Stefan Kangas
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2019-10-14 20:09 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: davor.cubranic, 21972

> From: Stefan Kangas <stefan@marxist.se>
> Date: Mon, 14 Oct 2019 21:55:22 +0200
> Cc: 21972@debbugs.gnu.org
> 
> Davor Cubranic <davor.cubranic@alumni.cs.ubc.ca> writes:
> 
> > On FreeBSD, running:
> >
> >   M-x shell-command
> >   /usr/local/bin/bash -i -c "echo hello"
> 
> On GNU/Linux, the above gives me:
> 
> bash: cannot set terminal process group (-1): Inappropriate ioctl for device
> bash: no job control in this shell
> hello
> 
> > hangs until you press C-g (twice). I can see the bash process running at
> > 100% via `top` until C-g kills it.
> >
> > Adding `--norc --noprofile` to the command still hangs, so it's not
> > anything about the shell initialization files. The `-i` option is the
> > key: without it, everything works fine.
> >
> > Running the same command via `async-shell-command` does not hang: Bash
> > outputs "hello" in the "*Async Shell Command*" buffer and exits.
> >
> > Both Emacs and Bash are standard FreeBSD 10 binary packages installed
> > via `pkg`. (emacs24-24.5_1,3 and bash-4.3.42, respectively).
> 
> If bash hangs, shouldn't that be reported as a bug in bash instead?

It's possible that your Bash is newer, and this bug was fixed since
then.

In general, it sounds like Bash tries to read from its stdin, and in
call-process that is... what?  By contrast, by default we communicate
with async subprocess via PTYs (on Posix hosts), which is what Bash
expects in an interactive session.

IOW, I cannot understand why would someone call "bash -i" in a
non-interactive command.

> Or should Emacs somehow do better with a hanging process?

Like what?





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
  2019-10-14 20:09   ` Eli Zaretskii
@ 2019-10-14 20:50     ` Stefan Kangas
  2019-10-17  4:47       ` Davor Cubranic
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Kangas @ 2019-10-14 20:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Davor Cubranic, 21972

Eli Zaretskii <eliz@gnu.org> writes:

> > If bash hangs, shouldn't that be reported as a bug in bash instead?
>
> It's possible that your Bash is newer, and this bug was fixed since
> then.

True.

> In general, it sounds like Bash tries to read from its stdin, and in
> call-process that is... what?  By contrast, by default we communicate
> with async subprocess via PTYs (on Posix hosts), which is what Bash
> expects in an interactive session.
>
> IOW, I cannot understand why would someone call "bash -i" in a
> non-interactive command.

Indeed.

> > Or should Emacs somehow do better with a hanging process?
>
> Like what?

No idea, that's why I'm asking.  But if you don't know either, then I
guess that means that there is nothing to do here; and this is not a
bug in Emacs.

Best regards,
Stefan Kangas





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
  2019-10-14 20:50     ` Stefan Kangas
@ 2019-10-17  4:47       ` Davor Cubranic
  2019-10-17 11:36         ` Stefan Kangas
  0 siblings, 1 reply; 6+ messages in thread
From: Davor Cubranic @ 2019-10-17  4:47 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 21972, Davor Cubranic

[-- Attachment #1: Type: text/plain, Size: 1757 bytes --]

I should have mentioned this in the report, but I believe this was, at 
the time I filed it, a minimal example reproducing why using package 
"exec-path-from-shell" [1] on FreeBSD caused Emacs to hang. (I had used 
it on Mac, and then ran into the bug when I copied my .emacsrc to a new 
FreeBSD machine.)

You can blame the package, or bash, or me for passing "-i" argument to 
bash, but to me it looked like it was Emacs that was doing something 
funny to the subprocess being executed to cause it to lock up -- and to 
do this only on FreeBSD.

I can't reproduce this now because I don't use FreeBSD any more, and as 
Eli said in the four years since the bug was filed both Emacs and Bash 
have moved on, so feel free to close the report.

[1]: https://github.com/purcell/exec-path-from-shell

Davor

On Mon, 14 Oct, 2019 at 1:50 PM, Stefan Kangas <stefan@marxist.se> 
wrote:
> Eli Zaretskii <eliz@gnu.org> writes:
> 
>>  > If bash hangs, shouldn't that be reported as a bug in bash 
>> instead?
>> 
>>  It's possible that your Bash is newer, and this bug was fixed since
>>  then.
> 
> True.
> 
>>  In general, it sounds like Bash tries to read from its stdin, and in
>>  call-process that is... what?  By contrast, by default we 
>> communicate
>>  with async subprocess via PTYs (on Posix hosts), which is what Bash
>>  expects in an interactive session.
>> 
>>  IOW, I cannot understand why would someone call "bash -i" in a
>>  non-interactive command.
> 
> Indeed.
> 
>>  > Or should Emacs somehow do better with a hanging process?
>> 
>>  Like what?
> 
> No idea, that's why I'm asking.  But if you don't know either, then I
> guess that means that there is nothing to do here; and this is not a
> bug in Emacs.
> 
> Best regards,
> Stefan Kangas

[-- Attachment #2: Type: text/html, Size: 2116 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD
  2019-10-17  4:47       ` Davor Cubranic
@ 2019-10-17 11:36         ` Stefan Kangas
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Kangas @ 2019-10-17 11:36 UTC (permalink / raw)
  To: Davor Cubranic; +Cc: Davor Cubranic, 21972-done

Davor Cubranic <davor@telus.net> writes:

> I can't reproduce this now because I don't use FreeBSD any more, and as Eli said in the four years since the bug was filed both Emacs and Bash have moved on, so feel free to close the report.

Thanks for reporting back.  With the above, I'm closing this bug report.

Best regards,
Stefan Kangas





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-10-17 11:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-21 14:20 bug#21972: 24.5; Running 'bash -i -c' via shell-command hangs on FreeBSD Davor Cubranic
2019-10-14 19:55 ` Stefan Kangas
2019-10-14 20:09   ` Eli Zaretskii
2019-10-14 20:50     ` Stefan Kangas
2019-10-17  4:47       ` Davor Cubranic
2019-10-17 11:36         ` Stefan Kangas

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).