Subject: bug#69543: 30.0.50; emacs hang

From: Gregor Zattler <[email-masked]>
Date: Mon, 04 Mar 2024 12:50:53 +0100

Dear Emacs developers, this happened when I tried to
open a file via emacsclient via a convoluted stack of
shell scripts.  I am sadly not able to reproduce.
Perhaps the backtrace below helps.

Regards; Gregor

Starting program: /home/grfz/src/emacs-master--32b4f9d21b14190f1ed1611515751abe4b90fa68--2024-02-27T09-36+01-00/src/emacs -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 125867]
[Detaching after vfork from child process 125868]
[Detaching after vfork from child process 125869]
[Detaching after vfork from child process 125870]
[Detaching after vfork from child process 126543]
[Detaching after vfork from child process 127191]

Program received signal SIGPIPE, Broken pipe.
0x00007ffff3db8240 in write () from /lib/x86_64-linux-gnu/libc.so.6
#0  0x00007ffff3db8240 in write () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x0000555555779f37 in emacs_full_write (interruptible=-1, nbyte=18, buf=0x555558244218 "-emacs-pid 125864\n", fd=10, fd@entry=18) at ./src/sysdep.c:2811
#2  emacs_write_sig (fd=fd@entry=10, buf=<optimized out>, nbyte=<optimized out>) at ./src/sysdep.c:2851
#3  0x000055555588bdd8 in send_process (proc=Python Exception <class 'gdb.error'>: value has been optimized out
, buf=<optimized out>, len=<optimized out>, object=Python Exception <class 'gdb.error'>: value has been optimized out
, object@entry=XIL(0x55555614fb94)) at ./src/process.c:6703
#4  0x000055555588c3f9 in Fprocess_send_string (process=Python Exception <class 'gdb.error'>: value has been optimized out
, string=XIL(0x55555614fb94)) at ./src/lisp.h:1630
#5  0x00007fffecb57400 in F7365727665722d73656e642d737472696e67_server_send_string_0 () at /home/grfz/src/emacs-master--32b4f9d21b14190f1ed1611515751abe4b90fa68--2024-02-27T09-36+01-00/native-lisp/30.0.50-0d1356ad/server-0cc44189-48d76bed.eln
#6  0x000055555581154d in funcall_subr (subr=0x55555824e320, numargs=2, args=<optimized out>) at ./src/eval.c:3092
#7  0x000055555580dccd in Ffuncall (nargs=3, args=0x7fffffffbe60) at ./src/eval.c:3022
#8  0x00007fffecb5b5e0 in F7365727665722d70726f636573732d66696c746572_server_process_filter_0 () at /home/grfz/src/emacs-master--32b4f9d21b14190f1ed1611515751abe4b90fa68--2024-02-27T09-36+01-00/native-lisp/30.0.50-0d1356ad/server-0cc44189-48d76bed.eln
#9  0x000055555581154d in funcall_subr (subr=0x555558259f40, numargs=2, args=<optimized out>) at ./src/eval.c:3092
#10 0x000055555580dccd in Ffuncall (nargs=nargs@entry=3, args=0x7fffffffc050) at ./src/eval.c:3022
#11 0x000055555580e06c in Fapply (nargs=nargs@entry=2, args=args@entry=0x7fffffffc0f0) at ./src/eval.c:2693
#12 0x000055555580e4a7 in apply1 (fn=XIL(0x22a0e40), arg=Python Exception <class 'gdb.error'>: value has been optimized out
) at ./src/eval.c:2909
#13 0x000055555580c12c in internal_condition_case_1 (bfun=bfun@entry=0x55555587b9f0 <read_process_output_call>, arg=Python Exception <class 'gdb.error'>: value has been optimized out
, handlers=Python Exception <class 'gdb.error'>: value has been optimized out
, handlers@entry=XIL(0x90), hfun=hfun@entry=0x55555587b0e0 <read_process_output_error_handler>) at ./src/eval.c:1561
#14 0x000055555587f6c7 in read_and_dispose_of_process_output (coding=0x5555582fe470, nbytes=63, chars=<optimized out>, p=<optimized out>) at ./src/lisp.h:1375
#15 read_process_output (proc=Python Exception <class 'gdb.error'>: value has been optimized out
, proc@entry=XIL(0x5555571c720d), channel=channel@entry=10) at ./src/process.c:6264
#16 0x0000555555887d76 in wait_reading_process_output (time_limit=time_limit@entry=5, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=Python Exception <class 'gdb.error'>: value has been optimized out
, wait_for_cell@entry=XIL(0), wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at ./src/process.c:5948
#17 0x00005555555dc478 in sit_for (timeout=Python Exception <class 'gdb.error'>: value has been optimized out
, timeout@entry=make_fixnum(5), reading=reading@entry=true, display_option=display_option@entry=1) at ./src/dispnew.c:6318
#18 0x00005555557642d3 in read_char (commandflag=1, map=Python Exception <class 'gdb.error'>: value has been optimized out
, map@entry=XIL(0x7ffff2cf49c3), prev_event=Python Exception <class 'gdb.error'>: value has been optimized out
, used_mouse_menu=used_mouse_menu@entry=0x7fffffffcc8b, end_time=end_time@entry=0x0) at ./src/lisp.h:746
#19 0x0000555555764d6f in read_key_sequence (keybuf=keybuf@entry=0x7fffffffcdf0, prompt=Python Exception <class 'gdb.error'>: value has been optimized out
, prompt@entry=XIL(0), dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, disable_text_conversion_p=false) at ./src/keyboard.c:10707
#20 0x00005555557675e0 in command_loop_1 () at ./src/lisp.h:1178
#21 0x000055555580c087 in internal_condition_case (bfun=bfun@entry=0x555555767380 <command_loop_1>, handlers=Python Exception <class 'gdb.error'>: value has been optimized out
, handlers@entry=XIL(0x90), hfun=hfun@entry=0x55555574c6f0 <cmd_error>) at ./src/eval.c:1537
#22 0x000055555574ad16 in command_loop_2 (handlers=handlers@entry=XIL(0x90)) at ./src/keyboard.c:1167
#23 0x000055555580bf7c in internal_catch (tag=Python Exception <class 'gdb.error'>: value has been optimized out
, tag@entry=XIL(0x10860), func=func@entry=0x55555574acf0 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out
, arg@entry=XIL(0x90)) at ./src/eval.c:1217
#24 0x000055555574acb9 in command_loop () at ./src/lisp.h:1178
#25 0x0000555555756b61 in recursive_edit_1 () at ./src/keyboard.c:753
#26 0x0000555555756edd in Frecursive_edit () at ./src/keyboard.c:836
#27 0x00005555555cb92a in main (argc=4, argv=0x7fffffffd2a8) at ./src/emacs.c:2624

Lisp Backtrace:

Breakpoint 1, terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:441
441	{
The program being debugged stopped while in a function called from GDB.
Evaluation of the expression containing the function
(backtrace_function) will be abandoned.
When the function is done executing, GDB will silently stop.

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu,
 cairo version 1.16.0) of 2024-02-27 built on no
Repository revision: 32b4f9d21b14190f1ed1611515751abe4b90fa68
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure --infodir=/usr/share/info/emacs --with-json
 --with-file-notification=yes --with-libsystemd
 --with-cairo --with-x=yes --with-x-toolkit=no
 --without-toolkit-scroll-bars --without-gsettings
 --enable-check-lisp-object-type
 --enable-checking=yes,glyphs --with-native-compilation
 'CFLAGS=-g3 -O3
 -ffile-prefix-map=/home/grfz/src/emacs-master--32b4f9d21b14190f1ed1611515751abe4b90fa68--2024-02-27T09-36+01-00=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
 LDFLAGS=-Wl,-z,relro'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM
HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD
LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY
OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS
TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB

Important settings:
  value of $LC_ALL:
  value of $LC_COLLATE: de_DE.utf8
  value of $LC_CTYPE: de_DE.utf8
  value of $LC_MESSAGES: POSIX
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: de_DE.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  server-mode: t
  rainbow-delimiters-mode: t
  winner-mode: t
  mail-abbrevs-mode: t
  savehist-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  delete-selection-mode: t
  which-function-mode: t
  windmove-mode: t
  xterm-mouse-mode: t
  key-chord-mode: t
  emacs-gc-stats-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/grfz/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib
/home/grfz/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj
/home/grfz/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address
/home/grfz/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello
/home/grfz/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/notmuch-parser
/home/grfz/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show
/home/grfz/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash
/home/grfz/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/notmuch-draft
/home/grfz/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/notmuch-tree
/home/grfz/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/notmuch-version
/home/grfz/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/notmuch-jump
/home/grfz/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/notmuch-company
/home/grfz/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch
/home/grfz/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto
/home/grfz/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/notmuch-compat
/home/grfz/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc
/home/grfz/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notmuch-tag
/home/grfz/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message
/home/grfz/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/notmuch-print
/home/grfz/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua
/home/grfz/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query
/home/grfz/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/notmuch-address
/home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/ol-notmuch
/home/grfz/.config/emacs/elpa-30.0/transient-0.5.3/transient hides /home/grfz/src/emacs-master--32b4f9d21b14190f1ed1611515751abe4b90fa68--2024-02-27T09-36+01-00/lisp/transient

Features:
(shadow sort orgalist wcheck-mode ecomplete mail-extr
emacsbug add-log server rainbow-delimiters
notifications time winner ol-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello notmuch-show
notmuch-print notmuch-crypto notmuch-mua
notmuch-message notmuch-draft notmuch-maildir-fcc
notmuch-address notmuch-company notmuch-parser
notmuch-wash diff-mode coolj goto-addr thingatpt
icalendar diary-lib diary-loaddefs notmuch-tag crm
notmuch-lib notmuch-version notmuch-compat pcase
hl-line message yank-media rfc822 mml gmm-utils
mailheader mm-view mml-smime mml-sec epa derived epg
rfc6068 epg-config gnus-util text-property-search smime
gnutls puny dig mm-decode mm-bodies mm-encode
mail-parse rfc2231 compat org-crypt org-protocol
org-clock dbus xml ob-plantuml ob-shell shell sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils finder-inf mailabbrev savehist
auth-source-pass holidays holiday-loaddefs ws-butler
delsel modus-operandi-theme modus-themes which-func
imenu windmove xt-mouse edmacro kmacro key-chord comp
comp-cstr warnings comp-run comp-common emacs-gc-stats
dired-aux dired dired-loaddefs cl-extra help-mode org
ob ob-ref ob-lob ob-table ob-exp org-macro
org-pcomplete pcomplete org-list org-footnote org-faces
org-entities time-date noutline outline ob-emacs-lisp
org-table org-loaddefs find-func cal-menu calendar
cal-loaddefs ob-tangle ol org-src sh-script rx smie
treesit executable org-keys oc ob-comint comint
ansi-osc ansi-color ring ob-core org-cycle org-fold
org-fold-core org-compat ob-eval org-version org-macs
format-spec use-package use-package-ensure
use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode
use-package-core async-autoloads csv-mode-autoloads
debbugs-autoloads dired-git-info-autoloads
emacs-gc-stats-autoloads gcmh-autoloads
hyperbole-autoloads kotl-autoloads hact set hhist
key-chord-autoloads magit-autoloads
git-commit-autoloads magit-section-autoloads
dash-autoloads org-contrib-autoloads org-autoloads
orgalist-autoloads paredit-autoloads
rainbow-delimiters-autoloads rainbow-mode-autoloads
transient-autoloads wcheck-mode-autoloads
which-key-autoloads info with-editor-autoloads
ws-butler-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs password-cache json subr-x map
byte-opt gv bytecomp byte-compile url-vars cus-edit pp
cus-load icons wid-edit cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame
minibuffer nadvice seq simple cl-generic indonesian
philippine cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese
eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite
emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded
button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64
format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting font-render-setting cairo
xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 364303 417512) (symbols 48 29085 4) (strings 32 90568 29185)
 (string-bytes 1 2957417) (vectors 16 35975)
 (vector-slots 8 449740 97050) (floats 8 314 8) (intervals 56 685 114)
 (buffers 976 12))