Opened 16 months ago

Last modified 3 months ago

#72583 assigned defect

emacs-app @30.1_1+nativecomp+rsvg+treesitter launches multiple bash processes that do not terminate

Reported by: william-r-greene (William R. (Bill) Greene) Owned by: drkp (Dan Ports)
Priority: Normal Milestone:
Component: ports Version: 2.10.7
Keywords: sequoia Cc:
Port: emacs-app

Description

Shell or process commands interspersed with setenv calls results in Emacs starting hundreds of bash processes (I stopped counting at 532.) that do not terminate.

Attachments (4)

emacs-frame-before-quit.png (239.2 KB) - added by william-r-greene (William R. (Bill) Greene) 16 months ago.
Emacs frame before hitting C-g twice
activity-monitor-showing-many-bash-processes.png (319.3 KB) - added by william-r-greene (William R. (Bill) Greene) 16 months ago.
Activity Monitor window showing a few of the bash processes started by Emacs
minimal-example.el (838 bytes) - added by william-r-greene (William R. (Bill) Greene) 16 months ago.
Minimal example of elisp code demonstrating problem
emacs-frame-after-quit.png (243.4 KB) - added by william-r-greene (William R. (Bill) Greene) 16 months ago.
Emacs frame after hitting C-g twice

Download all attachments as: .zip

Change History (7)

Changed 16 months ago by william-r-greene (William R. (Bill) Greene)

Attachment: emacs-frame-before-quit.png added

Emacs frame before hitting C-g twice

Changed 16 months ago by william-r-greene (William R. (Bill) Greene)

Activity Monitor window showing a few of the bash processes started by Emacs

Changed 16 months ago by william-r-greene (William R. (Bill) Greene)

Attachment: minimal-example.el added

Minimal example of elisp code demonstrating problem

Changed 16 months ago by william-r-greene (William R. (Bill) Greene)

Attachment: emacs-frame-after-quit.png added

Emacs frame after hitting C-g twice

comment:1 Changed 15 months ago by jmroot (Joshua Root)

Owner: set to drkp
Port: @30.1_1+nativecomp+rsvg+treesitter removed
Status: newassigned

comment:2 Changed 3 months ago by drkp (Dan Ports)

I couldn't reproduce this.

Any chance your bashrc is launching background processes? If so, they'll inherit the shell's stdout fd, and emacs will block waiting for that to finish before considering the shell command done.

comment:3 Changed 3 months ago by william-r-greene (William R. (Bill) Greene)

It looks like that was indeed happening. Here is the fragment from my .bashrc:

  # Try to determine what shell is running:
  if   [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then
      export WHICH_SHELL="${SHELL} version ${ZSH_VERSION}";
  elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then
      export WHICH_SHELL="${SHELL} version ${BASH_VERSION}";
  else
      export WHICH_SHELL=not_zsh_or_bash;
  fi;

Thanks.

-- Bill

Note: See TracTickets for help on using tickets.