GNU bug report logs - #66151
29.1.50; daemon crashing after X forwarding disconnects

Previous Next

Package: emacs;

Reported by: Benjamin Schwehn <bschwehn <at> gmail.com>

Date: Fri, 22 Sep 2023 10:23:02 UTC

Severity: normal

Found in version 29.1.50

Done: Po Lu <luangruo <at> yahoo.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66151 in the body.
You can then email your comments to 66151 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 10:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Benjamin Schwehn <bschwehn <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 22 Sep 2023 10:23:02 GMT) Full text and rfc822 format available.

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

From: Benjamin Schwehn <bschwehn <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 12:22:08 +0200
Hi,
I have emacs daemon reproducibly crashing in this scenario:

- emacs running as daemon via systemd user service
- running "emacsclient -nc" via ssh -X session
- stop X server on client machine or cut network connection between
 client and server
- run emacsclient -nc again

Result:
emacs window opens for about a second, then the daemon crashes. The
daemon then automatically restarts via the systemd service and once it
is up again, emacsclient works fine again.

Log in journalctl:

11:10:18 emacs[267232]: Backtrace:
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x1a81e1)[0x5584b348c1e1]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x51635)[0x5584b3335635]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x5206d)[0x5584b333606d]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x2edfb1)[0x5584b35d1fb1]
11:10:18 emacs[267232]:
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f21b6fc5520]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x138684)[0x5584b341c684]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x2c1a7c)[0x5584b35a5a7c]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x2c2e9b)[0x5584b35a6e9b]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228234)[0x5584b350c234]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228147)[0x5584b350c147]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x21897d)[0x5584b34fc97d]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228147)[0x5584b350c147]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x218e55)[0x5584b34fce55]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228147)[0x5584b350c147]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x217ccd)[0x5584b34fbccd]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228147)[0x5584b350c147]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x228147)[0x5584b350c147]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x229045)[0x5584b350d045]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x226da3)[0x5584b350ada3]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x22991d)[0x5584b350d91d]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x224a73)[0x5584b3508a73]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x224c7c)[0x5584b3508c7c]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x226da3)[0x5584b350ada3]
11:10:18 emacs[267232]:
/usr/local/lib/emacs/29.1.50/native-lisp/29.1.50-962049e0/server-0cc44189-b99afbb0.eln(F7365727665722d65786563757465_server_execute_0+0x868)[0x7f21b06b7fc8]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x224fe2)[0x5584b3508fe2]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x2720d7)[0x5584b35560d7]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x226da3)[0x5584b350ada3]
11:10:18 emacs[267232]:
/usr/local/lib/emacs/29.1.50/native-lisp/29.1.50-962049e0/server-0cc44189-b99afbb0.eln(F7365727665722d657865637574652d636f6e74696e756174696f6e_server_execute_continuation_0+0x>
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x226da3)[0x5584b350ada3]
11:10:18 emacs[267232]:
/usr/local/lib/emacs/29.1.50/native-lisp/29.1.50-962049e0/server-0cc44189-b99afbb0.eln(F7365727665722d70726f636573732d66696c746572_server_process_filter_0+0xe33)[0x7f21b06b5e3>
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x226da3)[0x5584b350ada3]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x227410)[0x5584b350b410]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x27c3d1)[0x5584b35603d1]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x2231dc)[0x5584b35071dc]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x27cad6)[0x5584b3560ad6]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x283701)[0x5584b3567701]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x19401a)[0x5584b347801a]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x195e03)[0x5584b3479e03]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x1a0bc5)[0x5584b3484bc5]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x18c30d)[0x5584b347030d]
11:10:18 emacs[267232]: /usr/local/bin/emacs(+0x223147)[0x5584b3507147]
11:10:18 emacs[267232]: ...
11:10:18 systemd[907]: emacs.service: Main process exited,
code=dumped, status=11/SEGV
11:10:18 systemd[907]: emacs.service: Failed with result 'core-dump'.
11:10:18 systemd[907]: emacs.service: Consumed 48.123s CPU time.
11:10:19 systemd[907]: emacs.service: Scheduled restart job, restart
counter is at 1.
11:10:19 systemd[907]: Stopped Emacs text editor.
11:10:19 systemd[907]: emacs.service: Consumed 48.123s CPU time.


sed -n 's/.*(\(.*\)).*$/\1/p' /tmp/emacscrashlog |\
    addr2line -C -f -i -p -e /usr/local/bin/emacs

emacs_backtrace at /home/ben/install/emacs/emacs/src/sysdep.c:2304
terminate_due_to_signal at /home/ben/install/emacs/emacs/src/emacs.c:458
deliver_process_signal at /home/ben/install/emacs/emacs/src/sysdep.c:1741
 (inlined by) deliver_fatal_signal at
/home/ben/install/emacs/emacs/src/sysdep.c:1789
deliver_thread_signal.constprop.0 at
/home/ben/install/emacs/emacs/src/sysdep.c:1765
?? ??:0
make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
 (inlined by) realize_default_face at
/home/ben/install/emacs/emacs/src/xfaces.c:5802
 (inlined by) realize_basic_faces at
/home/ben/install/emacs/emacs/src/xfaces.c:5736
recompute_basic_faces at /home/ben/install/emacs/emacs/src/xfaces.c:682
 (inlined by) recompute_basic_faces at
/home/ben/install/emacs/emacs/src/xfaces.c:677
 (inlined by) free_realized_fontsets at
/home/ben/install/emacs/emacs/src/fontset.c:1345
Fset_fontset_font at /home/ben/install/emacs/emacs/src/fontset.c:1696
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2515
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) FletX at /home/ben/install/emacs/emacs/src/eval.c:958
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) Flet at /home/ben/install/emacs/emacs/src/eval.c:1026
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) funcall_lambda at /home/ben/install/emacs/emacs/src/eval.c:3233
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
funcall_nil at /home/ben/install/emacs/emacs/src/eval.c:2679
run_hook_with_args at /home/ben/install/emacs/emacs/src/eval.c:2822
Frun_hooks at /home/ben/install/emacs/emacs/src/eval.c:2700 (discriminator 3)
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
?? ??:0
funcall_subr at /home/ben/install/emacs/emacs/src/eval.c:3046
exec_byte_code at /home/ben/install/emacs/emacs/src/bytecode.c:809
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
?? ??:0
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
safe_free at /home/ben/install/emacs/emacs/src/lisp.h:5373
 (inlined by) Fapply at /home/ben/install/emacs/emacs/src/eval.c:2668
read_process_output_call at /home/ben/install/emacs/emacs/src/process.c:6071
internal_condition_case_1 at /home/ben/install/emacs/emacs/src/eval.c:1500
read_and_dispose_of_process_output at
/home/ben/install/emacs/emacs/src/process.c:6300
 (inlined by) read_process_output at
/home/ben/install/emacs/emacs/src/process.c:6204
wait_reading_process_output at /home/ben/install/emacs/emacs/src/process.c:5889
kbd_buffer_get_event at /home/ben/install/emacs/emacs/src/keyboard.c:4012
read_event_from_main_queue at /home/ben/install/emacs/emacs/src/keyboard.c:2280
 (inlined by) read_decoded_event_from_main_queue at
/home/ben/install/emacs/emacs/src/keyboard.c:2343
 (inlined by) read_char at /home/ben/install/emacs/emacs/src/keyboard.c:2973
read_key_sequence at
/home/ben/install/emacs/emacs/src/keyboard.c:10087 (discriminator 3)
command_loop_1 at /home/ben/install/emacs/emacs/src/keyboard.c:1384
internal_condition_case at /home/ben/install/emacs/emacs/src/eval.c:1476


Maybe something related to font rendering? Please let me know what I
cando to help track this issue down further.
I had hoped using lucid would help, but the issue is the same as when
building emacs with gtk.

Thanks,Ben

from report-emacs-bug:

In GNU Emacs 29.1.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw scroll bars) of 2023-09-22 built on g1devvap01
Repository revision: c966e7ec381fa32ad09dab4329d5ad27d87b5b98
Repository branch: emacs-29
Windowing system distributor 'Moba/X', version 11.0.11603000
System Description: Ubuntu 22.04.3 LTS

Configured using:
 'configure --with-native-compilation=aot --with-tree-sitter
 --with-x-toolkit=lucid --with-json --without-xaw3d --with-sound=no
 --enable-link-time-optimization'

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

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

Major mode: Org

Minor modes in effect:
  evil-traces-mode: t
  projectile-mode: t
  +emacs-lisp-non-package-mode: t
  flyspell-lazy-mode: t
  flyspell-mode: t
  evil-org-mode: t
  org-auto-tangle-mode: t
  +word-wrap-mode: t
  org-indent-mode: t
  solaire-global-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  doom-modeline-mode: t
  which-key-mode: t
  savehist-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  company-box-mode: t
  global-company-mode: t
  company-mode: t
  vertico-mode: t
  all-the-icons-completion-mode: t
  marginalia-mode: t
  evil-goggles-mode: t
  evil-escape-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  recentf-mode: t
  save-place-mode: t
  global-so-long-mode: t
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  server-mode: t
  gcmh-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  winner-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  flycheck-popup-tip-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  editorconfig-mode: t
  org-roam-db-autosync-mode: t
  whitespace-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  eros-mode: t
  vi-tilde-fringe-mode: t
  display-line-numbers-mode: t
  persistent-scratch-autosave-mode: t
  evil-mode: t
  evil-local-mode: t
  windmove-mode: t
  +popup-mode: t
  override-global-mode: t
  general-override-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/ben/.emacs.d/.local/straight/build-29.1.50/emacsql-sqlite/emacsql-sqlite
hides /home/ben/.emacs.d/.local/straight/build-29.1.50/emacsql/emacsql-sqlite
/home/ben/.emacs.d/.local/straight/build-29.1.50/jsonrpc/jsonrpc hides
/usr/local/share/emacs/29.1.50/lisp/jsonrpc
/home/ben/.emacs.d/.local/straight/build-29.1.50/external-completion/external-completion
hides /usr/local/share/emacs/29.1.50/lisp/external-completion
/home/ben/.emacs.d/.local/straight/build-29.1.50/transient/transient
hides /usr/local/share/emacs/29.1.50/lisp/transient
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-delight
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-delight
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-diminish
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-diminish
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-lint
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-lint
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-ensure
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-ensure
/home/ben/.emacs.d/.local/straight/build-29.1.50/bind-key/bind-key
hides /usr/local/share/emacs/29.1.50/lisp/use-package/bind-key
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-core
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-core
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-jump
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-jump
/home/ben/.emacs.d/.local/straight/build-29.1.50/use-package/use-package-bind-key
hides /usr/local/share/emacs/29.1.50/lisp/use-package/use-package-bind-key
/home/ben/.emacs.d/.local/straight/build-29.1.50/xref/xref hides
/usr/local/share/emacs/29.1.50/lisp/progmodes/xref
/home/ben/.emacs.d/.local/straight/build-29.1.50/eglot/eglot hides
/usr/local/share/emacs/29.1.50/lisp/progmodes/eglot
/home/ben/.emacs.d/.local/straight/build-29.1.50/project/project hides
/usr/local/share/emacs/29.1.50/lisp/progmodes/project
/home/ben/.emacs.d/.local/straight/build-29.1.50/flymake/flymake hides
/usr/local/share/emacs/29.1.50/lisp/progmodes/flymake
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-calc hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-calc
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-maxima hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-maxima
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-mhe hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-mhe
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-goto hides
/usr/local/share/emacs/29.1.50/lisp/org/org-goto
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-koma-letter
hides /usr/local/share/emacs/29.1.50/lisp/org/ox-koma-letter
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-core hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-core
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-R hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-R
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-awk hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-awk
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-archive hides
/usr/local/share/emacs/29.1.50/lisp/org/org-archive
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-mobile hides
/usr/local/share/emacs/29.1.50/lisp/org/org-mobile
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-ruby hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-ruby
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc-bibtex hides
/usr/local/share/emacs/29.1.50/lisp/org/oc-bibtex
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-emacs-lisp
hides /usr/local/share/emacs/29.1.50/lisp/org/ob-emacs-lisp
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-lilypond hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-lilypond
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-js hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-js
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-agenda hides
/usr/local/share/emacs/29.1.50/lisp/org/org-agenda
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-clock hides
/usr/local/share/emacs/29.1.50/lisp/org/org-clock
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-attach-git
hides /usr/local/share/emacs/29.1.50/lisp/org/org-attach-git
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-icalendar
hides /usr/local/share/emacs/29.1.50/lisp/org/ox-icalendar
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-clojure hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-clojure
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-org hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-org
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-texinfo hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-texinfo
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-macro hides
/usr/local/share/emacs/29.1.50/lisp/org/org-macro
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-colview hides
/usr/local/share/emacs/29.1.50/lisp/org/org-colview
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-ditaa hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-ditaa
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-lua hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-lua
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-octave hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-octave
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-eshell hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-eshell
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-footnote
hides /usr/local/share/emacs/29.1.50/lisp/org/org-footnote
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-keys hides
/usr/local/share/emacs/29.1.50/lisp/org/org-keys
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-md hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-md
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-groovy hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-groovy
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-table hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-table
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-pcomplete
hides /usr/local/share/emacs/29.1.50/lisp/org/org-pcomplete
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-datetree
hides /usr/local/share/emacs/29.1.50/lisp/org/org-datetree
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox hides
/usr/local/share/emacs/29.1.50/lisp/org/ox
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-version hides
/usr/local/share/emacs/29.1.50/lisp/org/org-version
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-html hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-html
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-entities
hides /usr/local/share/emacs/29.1.50/lisp/org/org-entities
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-loaddefs
hides /usr/local/share/emacs/29.1.50/lisp/org/org-loaddefs
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-ctags hides
/usr/local/share/emacs/29.1.50/lisp/org/org-ctags
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-fold hides
/usr/local/share/emacs/29.1.50/lisp/org/org-fold
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-macs hides
/usr/local/share/emacs/29.1.50/lisp/org/org-macs
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-duration
hides /usr/local/share/emacs/29.1.50/lisp/org/org-duration
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-ref hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-ref
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-lisp hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-lisp
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-screen hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-screen
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-habit hides
/usr/local/share/emacs/29.1.50/lisp/org/org-habit
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-doi hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-doi
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-num hides
/usr/local/share/emacs/29.1.50/lisp/org/org-num
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-cycle hides
/usr/local/share/emacs/29.1.50/lisp/org/org-cycle
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-refile hides
/usr/local/share/emacs/29.1.50/lisp/org/org-refile
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-publish hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-publish
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-inlinetask
hides /usr/local/share/emacs/29.1.50/lisp/org/org-inlinetask
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc-csl hides
/usr/local/share/emacs/29.1.50/lisp/org/oc-csl
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-ocaml hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-ocaml
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-attach hides
/usr/local/share/emacs/29.1.50/lisp/org/org-attach
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob hides
/usr/local/share/emacs/29.1.50/lisp/org/ob
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-java hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-java
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc hides
/usr/local/share/emacs/29.1.50/lisp/org/oc
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-lob hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-lob
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc-biblatex hides
/usr/local/share/emacs/29.1.50/lisp/org/oc-biblatex
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-eshell hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-eshell
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-persist hides
/usr/local/share/emacs/29.1.50/lisp/org/org-persist
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org hides
/usr/local/share/emacs/29.1.50/lisp/org/org
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-tangle hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-tangle
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-latex hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-latex
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-beamer hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-beamer
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-sql hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-sql
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-capture hides
/usr/local/share/emacs/29.1.50/lisp/org/org-capture
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-python hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-python
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-list hides
/usr/local/share/emacs/29.1.50/lisp/org/org-list
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-sqlite hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-sqlite
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-id hides
/usr/local/share/emacs/29.1.50/lisp/org/org-id
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-timer hides
/usr/local/share/emacs/29.1.50/lisp/org/org-timer
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-scheme hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-scheme
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-plot hides
/usr/local/share/emacs/29.1.50/lisp/org/org-plot
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-man hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-man
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-eval hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-eval
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-feed hides
/usr/local/share/emacs/29.1.50/lisp/org/org-feed
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-processing
hides /usr/local/share/emacs/29.1.50/lisp/org/ob-processing
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-odt hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-odt
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-org hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-org
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-latex hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-latex
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-crypt hides
/usr/local/share/emacs/29.1.50/lisp/org/org-crypt
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-dot hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-dot
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-faces hides
/usr/local/share/emacs/29.1.50/lisp/org/org-faces
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-gnuplot hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-gnuplot
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-haskell hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-haskell
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc-natbib hides
/usr/local/share/emacs/29.1.50/lisp/org/oc-natbib
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-css hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-css
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-sed hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-sed
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-julia hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-julia
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-shell hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-shell
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-matlab hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-matlab
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-forth hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-forth
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-compat hides
/usr/local/share/emacs/29.1.50/lisp/org/org-compat
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ox-ascii hides
/usr/local/share/emacs/29.1.50/lisp/org/ox-ascii
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-bbdb hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-bbdb
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-table hides
/usr/local/share/emacs/29.1.50/lisp/org/org-table
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-fortran hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-fortran
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-sass hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-sass
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-man hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-man
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-exp hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-exp
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-rmail hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-rmail
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-makefile hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-makefile
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-w3m hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-w3m
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-irc hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-irc
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-indent hides
/usr/local/share/emacs/29.1.50/lisp/org/org-indent
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/oc-basic hides
/usr/local/share/emacs/29.1.50/lisp/org/oc-basic
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-protocol
hides /usr/local/share/emacs/29.1.50/lisp/org/org-protocol
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-docview hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-docview
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-lint hides
/usr/local/share/emacs/29.1.50/lisp/org/org-lint
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-bibtex hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-bibtex
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-comint hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-comint
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-tempo hides
/usr/local/share/emacs/29.1.50/lisp/org/org-tempo
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-element hides
/usr/local/share/emacs/29.1.50/lisp/org/org-element
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-gnus hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-gnus
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-mouse hides
/usr/local/share/emacs/29.1.50/lisp/org/org-mouse
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-fold-core
hides /usr/local/share/emacs/29.1.50/lisp/org/org-fold-core
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-C hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-C
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-info hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-info
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol-eww hides
/usr/local/share/emacs/29.1.50/lisp/org/ol-eww
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ol hides
/usr/local/share/emacs/29.1.50/lisp/org/ol
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-plantuml hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-plantuml
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/org-src hides
/usr/local/share/emacs/29.1.50/lisp/org/org-src
/home/ben/.emacs.d/.local/straight/build-29.1.50/org/ob-perl hides
/usr/local/share/emacs/29.1.50/lisp/org/ob-perl
/home/ben/.emacs.d/.local/straight/build-29.1.50/eldoc/eldoc hides
/usr/local/share/emacs/29.1.50/lisp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug adaptive-wrap ob-shell
rainbow-delimiters company-shell evil-collection-sh-script sh-script
smie npm-mode json-mode json-snatcher smartparens-javascript
js-mode-expansions js c-ts-common treesit smartparens-c
cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs consult-flycheck
evil-collection-consult consult ucs-normalize evil-collection-evil-mc
evil-mc evil-mc-command-execute evil-mc-command-record
evil-mc-cursor-make evil-mc-region evil-mc-cursor-state evil-mc-undo
evil-mc-vars evil-mc-known-commands evil-mc-common company-ispell
company-yasnippet company-dabbrev evil-traces evil-ex image-file
image-converter copilot copilot-balancer jsonrpc projectile project
ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs executable
magit-bookmark evil-collection-bookmark bookmark delsel tabify
hide-mode-line timezone orgit org-roam-dailies git-gutter-fringe
fringe-helper git-gutter evil-collection-vc-git vc-git vc-dispatcher
jka-compr disp-table org-eldoc org-crypt flyspell-lazy flyspell ispell
toc-org evil-org org-auto-tangle org-indent vertico-directory
cursor-sensor vertico-repeat mule-util oc-basic org-tempo tempo
org-habit ol-bibtex bibtex auto-minor-mode doom-themes-ext-treemacs
doom-themes-ext-org solaire-mode face-remap modus-operandi-theme
modus-themes evil-collection-magit-todos magit-todos pcre2el rxt
re-builder async evil-collection-grep grep evil-collection-compile
compile magit-autoloads evil-collection-magit magit-submodule
magit-obsolete magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode evil-collection-diff-mode diff-mode magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process magit-mode doom-snippets doom-snippets-lib
evil-collection-elisp-mode yasnippet elisp-mode doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path
f f-shortdoc s evil-collection-which-key which-key savehist
better-jumper company-box company-box-doc frame-local company-box-icons
company-capf company evil-collection-vertico vertico orderless
all-the-icons-completion all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons marginalia evil-goggles pulse color evil-easymotion
evil-escape evil-snipe recentf tree-widget saveplace
evil-collection-so-long so-long git-commit magit-git magit-base crm
with-editor shell transient server evil-collection-log-edit log-edit
pcvs-util add-log gcmh hl-line winner smartparens-config
smartparens-text smartparens undo-tree diff queue flycheck-popup-tip
evil-collection-popup popup flycheck-cask flycheck-package package-lint
evil-collection-imenu imenu evil-collection-finder finder finder-inf
lisp-mnt evil-collection-package-menu doom-packages package url-handlers
evil-collection-flycheck flycheck ws-butler editorconfig
editorconfig-core editorconfig-core-handle editorconfig-fnmatch
anki-editor ox-dnd ox-pandoc ht ox-org ox-odt rng-loc rng-uri rng-parse
rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok
nxml-util ox-latex ox-icalendar ox-ascii ox-md ox-html table ox-publish
ox vigenere request org-contacts org-agenda gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku
url-file svg dom browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int
gnus-range message sendmail mailcap yank-media puny rfc822 mml mml-sec
evil-collection-epa epa epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win evil-collection-gnus gnus nnheader
mail-utils range mm-util mail-prsvr gnus-util text-property-search
the-org-mode-expansions evil-collection-org evil-collection-org-roam
org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id
org-roam-node org-roam-db emacsql-sqlite-builtin sqlite org-roam-utils
org-roam-compat org-roam org-capture org-attach emacsql-sqlite
emacsql-sqlite-common emacsql emacsql-compiler
evil-collection-magit-section magit-section dash smartparens-org org-yt
org-element org-persist xdg org-id org-refile org ob ob-tangle ob-ref
ob-lob ob-table org-macro org-src ob-comint org-pcomplete pcomplete
evil-collection-comint comint ansi-osc ansi-color org-list org-footnote
org-faces org-entities time-date noutline outline ob-emacs-lisp
org-table org-keys org-loaddefs find-func evil-collection-calendar
cal-menu calendar cal-loaddefs avl-tree generator ol oc ob-exp
whitespace git-link url-util url-parse auth-source eieio eieio-core
password-cache json map url-vars evil-collection-dired dired
dired-loaddefs evil-embrace evil-surround embrace expand-region
text-mode-expansions er-basic-expansions expand-region-core
expand-region-custom eros vi-tilde-fringe highlight-numbers parent-mode
display-line-numbers hl-todo compat dtrt-indent evil-collection-custom
cus-edit cus-load wid-edit evil-collection annalist persistent-scratch
let-alist ob-core org-cycle org-fold org-fold-core org-compat ob-eval
org-version org-macs format-spec derived evil evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-search
evil-types evil-macros evil-repeat evil-states evil-core byte-opt advice
evil-common windmove calc calc-loaddefs calc-macs thingatpt rect
evil-digraphs evil-vars ring edmacro kmacro use-package-bind-key
bind-key comp comp-cstr warnings icons doom-editor doom-projects doom-ui
easy-mmode doom-keybinds pp cl-extra help-mode use-package-core bytecomp
byte-compile general rx doom-start doom-modules cl-seq doom doom-lib
cl-macs cl-loaddefs cl-lib pcase gv jansson dynamic-modules subr-x rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd
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 system-font-setting font-render-setting
cairo x-toolkit xinput2 x multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 1367135 93856)
 (symbols 48 84475 1)
 (strings 32 305623 26480)
 (string-bytes 1 12390027)
 (vectors 16 181428)
 (vector-slots 8 3776904 120599)
 (floats 8 2065 803)
 (intervals 56 3989 1021)
 (buffers 984 31))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 12:23:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Benjamin Schwehn <bschwehn <at> gmail.com>, Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 15:22:15 +0300
> From: Benjamin Schwehn <bschwehn <at> gmail.com>
> Date: Fri, 22 Sep 2023 12:22:08 +0200
> 
> Hi,
> I have emacs daemon reproducibly crashing in this scenario:
> 
> - emacs running as daemon via systemd user service
> - running "emacsclient -nc" via ssh -X session
> - stop X server on client machine or cut network connection between
>  client and server
> - run emacsclient -nc again
> 
> Result:
> emacs window opens for about a second, then the daemon crashes. The
> daemon then automatically restarts via the systemd service and once it
> is up again, emacsclient works fine again.

Does this happen with any emacsclient command in this situation?  What
if you don't use -c, for example, or use -t instead?

From this backtrace:

> deliver_thread_signal.constprop.0 at
> /home/ben/install/emacs/emacs/src/sysdep.c:1765
> ?? ??:0
> make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
>  (inlined by) realize_default_face at
> /home/ben/install/emacs/emacs/src/xfaces.c:5802
>  (inlined by) realize_basic_faces at
> /home/ben/install/emacs/emacs/src/xfaces.c:5736

The segfault seems to be caused by the frame's output_data.x being
NULL or invalid.  Po Lu, is this caused by stopping the server or
cutting the network connection between client and server?  If so, is
there any remedy?  Perhaps the server should exit gracefully in this
case?

Btw, I don't quite understand this part:

> recompute_basic_faces at /home/ben/install/emacs/emacs/src/xfaces.c:682
>  (inlined by) recompute_basic_faces at
> /home/ben/install/emacs/emacs/src/xfaces.c:677
>  (inlined by) free_realized_fontsets at
> /home/ben/install/emacs/emacs/src/fontset.c:1345
> Fset_fontset_font at /home/ben/install/emacs/emacs/src/fontset.c:1696

Why do we need to call set-fontset-font here?  What kind of
emacsclient command line causes this?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 13:14:01 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66151 <at> debbugs.gnu.org, Benjamin Schwehn <bschwehn <at> gmail.com>
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 21:12:49 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> deliver_thread_signal.constprop.0 at
>> /home/ben/install/emacs/emacs/src/sysdep.c:1765
>> ?? ??:0
>> make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
>>  (inlined by) realize_default_face at
>> /home/ben/install/emacs/emacs/src/xfaces.c:5802
>>  (inlined by) realize_basic_faces at
>> /home/ben/install/emacs/emacs/src/xfaces.c:5736
>
> The segfault seems to be caused by the frame's output_data.x being
> NULL or invalid.  Po Lu, is this caused by stopping the server or
> cutting the network connection between client and server?  If so, is
> there any remedy?

The cause is the network connection being cut.  If a display disconnect
transpires while Emacs is operating on live frames connected to that
display, Emacs will crash, as the Xlib error handler deletes such frames
promptly.  There are no simple solutions or means of circumventing this
problem.

> Btw, I don't quite understand this part:
>
>> recompute_basic_faces at /home/ben/install/emacs/emacs/src/xfaces.c:682
>>  (inlined by) recompute_basic_faces at
>> /home/ben/install/emacs/emacs/src/xfaces.c:677
>>  (inlined by) free_realized_fontsets at
>> /home/ben/install/emacs/emacs/src/fontset.c:1345
>> Fset_fontset_font at /home/ben/install/emacs/emacs/src/fontset.c:1696
>
> Why do we need to call set-fontset-font here?  What kind of
> emacsclient command line causes this?

I don't know, but the answer to that question might yield some
information that could concievably be used to avoid the set of
circumstances which precipitated this particular crash.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 13:17:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org, bschwehn <at> gmail.com
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 16:16:48 +0300
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: Benjamin Schwehn <bschwehn <at> gmail.com>,  66151 <at> debbugs.gnu.org
> Date: Fri, 22 Sep 2023 21:12:49 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> deliver_thread_signal.constprop.0 at
> >> /home/ben/install/emacs/emacs/src/sysdep.c:1765
> >> ?? ??:0
> >> make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
> >>  (inlined by) realize_default_face at
> >> /home/ben/install/emacs/emacs/src/xfaces.c:5802
> >>  (inlined by) realize_basic_faces at
> >> /home/ben/install/emacs/emacs/src/xfaces.c:5736
> >
> > The segfault seems to be caused by the frame's output_data.x being
> > NULL or invalid.  Po Lu, is this caused by stopping the server or
> > cutting the network connection between client and server?  If so, is
> > there any remedy?
> 
> The cause is the network connection being cut.  If a display disconnect
> transpires while Emacs is operating on live frames connected to that
> display, Emacs will crash, as the Xlib error handler deletes such frames
> promptly.  There are no simple solutions or means of circumventing this
> problem.

I think in this case there were no live frames connected to the
display, only the initial (non-GUI) daemon frame.  Benjamin, is that
true?

> > Btw, I don't quite understand this part:
> >
> >> recompute_basic_faces at /home/ben/install/emacs/emacs/src/xfaces.c:682
> >>  (inlined by) recompute_basic_faces at
> >> /home/ben/install/emacs/emacs/src/xfaces.c:677
> >>  (inlined by) free_realized_fontsets at
> >> /home/ben/install/emacs/emacs/src/fontset.c:1345
> >> Fset_fontset_font at /home/ben/install/emacs/emacs/src/fontset.c:1696
> >
> > Why do we need to call set-fontset-font here?  What kind of
> > emacsclient command line causes this?
> 
> I don't know, but the answer to that question might yield some
> information that could concievably be used to avoid the set of
> circumstances which precipitated this particular crash.

Yes, which is why I asked Benjamin to try to provide that information ;-)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 14:30:03 GMT) Full text and rfc822 format available.

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

From: Benjamin Schwehn <bschwehn <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Po Lu <luangruo <at> yahoo.com>, 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 16:28:40 +0200
Thanks a lot for helping me with this!

> > - emacs running as daemon via systemd user service
> > - running "emacsclient -nc" via ssh -X session
> > - stop X server on client machine or cut network connection between
> >  client and server
> > - run emacsclient -nc again
> >
> > Result:
> > emacs window opens for about a second, then the daemon crashes.
>
> Does this happen with any emacsclient command in this situation?  What
> if you don't use -c, for example, or use -t instead?

emacsclient -t also causes the crash, with this backtrace (looks the same to me)

emacs_backtrace at /home/ben/install/emacs/emacs/src/sysdep.c:2304
terminate_due_to_signal at /home/ben/install/emacs/emacs/src/emacs.c:458
deliver_process_signal at /home/ben/install/emacs/emacs/src/sysdep.c:1741
 (inlined by) deliver_fatal_signal at
/home/ben/install/emacs/emacs/src/sysdep.c:1789
deliver_thread_signal.constprop.0 at
/home/ben/install/emacs/emacs/src/sysdep.c:1765
?? ??:0
make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
 (inlined by) realize_default_face at
/home/ben/install/emacs/emacs/src/xfaces.c:5802
 (inlined by) realize_basic_faces at
/home/ben/install/emacs/emacs/src/xfaces.c:5736
recompute_basic_faces at /home/ben/install/emacs/emacs/src/xfaces.c:682
 (inlined by) recompute_basic_faces at
/home/ben/install/emacs/emacs/src/xfaces.c:677
 (inlined by) free_realized_fontsets at
/home/ben/install/emacs/emacs/src/fontset.c:1345
Fset_fontset_font at /home/ben/install/emacs/emacs/src/fontset.c:1696
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2515
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) Flet at /home/ben/install/emacs/emacs/src/eval.c:1026
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) prog_ignore at /home/ben/install/emacs/emacs/src/eval.c:447
 (inlined by) Fwhile at /home/ben/install/emacs/emacs/src/eval.c:1047
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) Flet at /home/ben/install/emacs/emacs/src/eval.c:1026
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2593
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2449
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2593
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) funcall_lambda at /home/ben/install/emacs/emacs/src/eval.c:3233
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
funcall_nil at /home/ben/install/emacs/emacs/src/eval.c:2679
run_hook_with_args at /home/ben/install/emacs/emacs/src/eval.c:2822
Frun_hooks at /home/ben/install/emacs/emacs/src/eval.c:2700 (discriminator 3)
eval_sub at /home/ben/install/emacs/emacs/src/eval.c:2472
Fprogn at /home/ben/install/emacs/emacs/src/eval.c:436
 (inlined by) funcall_lambda at /home/ben/install/emacs/emacs/src/eval.c:3233
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
funcall_nil at /home/ben/install/emacs/emacs/src/eval.c:2679
run_hook_with_args at /home/ben/install/emacs/emacs/src/eval.c:2822
Frun_hooks at /home/ben/install/emacs/emacs/src/eval.c:2700 (discriminator 3)
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
?? ??:0
funcall_subr at /home/ben/install/emacs/emacs/src/eval.c:3046
exec_byte_code at /home/ben/install/emacs/emacs/src/bytecode.c:809
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
?? ??:0
Ffuncall at /home/ben/install/emacs/emacs/src/eval.c:2997
safe_free at /home/ben/install/emacs/emacs/src/lisp.h:5373
 (inlined by) Fapply at /home/ben/install/emacs/emacs/src/eval.c:2668

> > >> deliver_thread_signal.constprop.0 at
> > >> /home/ben/install/emacs/emacs/src/sysdep.c:1765
> > >> ?? ??:0
> > >> make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
> > >>  (inlined by) realize_default_face at
> > >> /home/ben/install/emacs/emacs/src/xfaces.c:5802
> > >>  (inlined by) realize_basic_faces at
> > >> /home/ben/install/emacs/emacs/src/xfaces.c:5736
> > >
> > > The segfault seems to be caused by the frame's output_data.x being
> > > NULL or invalid.  Po Lu, is this caused by stopping the server or
> > > cutting the network connection between client and server?  If so, is
> > > there any remedy?
> >
> > The cause is the network connection being cut.  If a display disconnect
> > transpires while Emacs is operating on live frames connected to that
> > display, Emacs will crash, as the Xlib error handler deletes such frames
> > promptly.  There are no simple solutions or means of circumventing this
> > problem.
>
> I think in this case there were no live frames connected to the
> display, only the initial (non-GUI) daemon frame.  Benjamin, is that
> true?

The crash is triggered when a live frame was connected when the network
connection was cut, but the crash happens only later, the next time I open a
frame.  But I am not fully sure I correctly understand the question. Let me try
to explain better the circumstances:

I have emacs running in server mode on a VM. I have a windows machine running an
X server. Both machines are connected via a VPN which somtimes loses connection.
The issues comes after this connection loss. To reproduce I do this:

1. ssh -X into the machine and run emacsclient -nc. Emacs frame opens on the
   client (windows) machine.
2. While the frame is open, I disconnect (C-d, C-c in the terminal that has the
   ssh -X connection).
3. I reconnect to the server via ssh. At this point, the emacs server process
   has not yet crashed.
4. I run emacsclient -nc
5. On the client machine, an emacs frame opens and does some initial draw, then
   the server process crashes

If in step 4, I run emacclient -t instead, the server process also crashes. I
can't see an initial draw happening in this case.

If in step 2, I first close the frame, then disconnect, the crash in step 5 does
not happen (neither for -nc nor -t) and opening a frame works fine.

It's not a terrible issue for me, but annoyingly happens every time the VPN
connection is lost (~twice a day) and I have emacs open (~all the time :)).

Thanks, Ben




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 15:08:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Benjamin Schwehn <bschwehn <at> gmail.com>
Cc: luangruo <at> yahoo.com, 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 18:07:49 +0300
> From: Benjamin Schwehn <bschwehn <at> gmail.com>
> Date: Fri, 22 Sep 2023 16:28:40 +0200
> Cc: Po Lu <luangruo <at> yahoo.com>, 66151 <at> debbugs.gnu.org
> 
> > Does this happen with any emacsclient command in this situation?  What
> > if you don't use -c, for example, or use -t instead?
> 
> emacsclient -t also causes the crash, with this backtrace (looks the same to me)
> 
> emacs_backtrace at /home/ben/install/emacs/emacs/src/sysdep.c:2304
> terminate_due_to_signal at /home/ben/install/emacs/emacs/src/emacs.c:458
> deliver_process_signal at /home/ben/install/emacs/emacs/src/sysdep.c:1741
>  (inlined by) deliver_fatal_signal at
> /home/ben/install/emacs/emacs/src/sysdep.c:1789
> deliver_thread_signal.constprop.0 at
> /home/ben/install/emacs/emacs/src/sysdep.c:1765
> ?? ??:0
> make_lisp_ptr at /home/ben/install/emacs/emacs/src/lisp.h:1364
>  (inlined by) realize_default_face at
> /home/ben/install/emacs/emacs/src/xfaces.c:5802

So this means we are somehow handling the original GUI frame.

> The crash is triggered when a live frame was connected when the network
> connection was cut, but the crash happens only later, the next time I open a
> frame. But I am not fully sure I correctly understand the question. Let me try
> to explain better the circumstances:
> 
> I have emacs running in server mode on a VM. I have a windows machine running an
> X server. Both machines are connected via a VPN which somtimes loses connection.
> The issues comes after this connection loss. To reproduce I do this:
> 
> 1. ssh -X into the machine and run emacsclient -nc. Emacs frame opens on the
>    client (windows) machine.
> 2. While the frame is open, I disconnect (C-d, C-c in the terminal that has the
>    ssh -X connection).
> 3. I reconnect to the server via ssh. At this point, the emacs server process
>    has not yet crashed.
> 4. I run emacsclient -nc
> 5. On the client machine, an emacs frame opens and does some initial draw, then
>    the server process crashes
> 
> If in step 4, I run emacclient -t instead, the server process also crashes. I
> can't see an initial draw happening in this case.
> 
> If in step 2, I first close the frame, then disconnect, the crash in step 5 does
> not happen (neither for -nc nor -t) and opening a frame works fine.

I think this confirms what Po Lu was saying: Emacs cannot recover when
you close the connection while some frame using that connection is
still on display.  You should close all such frames before
disconnecting.

> It's not a terrible issue for me, but annoyingly happens every time the VPN
> connection is lost (~twice a day) and I have emacs open (~all the time :)).

Why is the VPN connection lost so frequently?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 16:52:02 GMT) Full text and rfc822 format available.

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

From: Benjamin Schwehn <bschwehn <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: luangruo <at> yahoo.com, 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 22 Sep 2023 18:51:09 +0200
On Fri, 22 Sept 2023 at 17:07, Eli Zaretskii <eliz <at> gnu.org> wrote:

> I think this confirms what Po Lu was saying: Emacs cannot recover when
> you close the connection while some frame using that connection is
> still on display.  You should close all such frames before
> disconnecting.

Ok, sounds like there is no easy fix, thanks for the explanation!

I am curious though, before switching to lucid, emacs logged this during startup
as systemd service:

Warning: due to a long standing Gtk+ bug
https://gitlab.gnome.org/GNOME/gtk/issues/221
Emacs might crash when run in daemon mode and the X11 connection is
unexpectedly lost.
Using an Emacs configured with --with-x-toolkit=lucid does not have
this problem.

Do you happen to know what (if any) difference using lucid or gtk does in this
use case?

> > It's not a terrible issue for me, but annoyingly happens every time the VPN
> > connection is lost (~twice a day) and I have emacs open (~all the time :)).
>
> Why is the VPN connection lost so frequently?

Well, it is a work provided setup I have no control over. Half the disconnects
are due to me missing the mandatory re-authentication every x hours, the other
half I don't know.

I had quickly experimented with xpra (https://github.com/Xpra-org/xpra), which
should keep a persistent X11 connection. But it increased latency too much for
my liking.

Ben




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 22 Sep 2023 23:44:02 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: Benjamin Schwehn <bschwehn <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 23 Sep 2023 07:42:51 +0800
Benjamin Schwehn <bschwehn <at> gmail.com> writes:

> difference using lucid or gtk does in this use case?

There is a good chance of recovery if a display connection is cut within
a non-GTK build, so long as the disconnect transpires while Emacs is
reading input, rather than operating on a frame connected to that
display.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Tue, 09 Apr 2024 22:54:01 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: 66151 <at> debbugs.gnu.org
Date: Tue, 9 Apr 2024 10:02:45 -0500
[Message part 1 (text/plain, inline)]
Hi,

I am able to reproduce this bug without launching a new emacsclient. Steps
to reproduce:

- Start emacs daemon.
- Connect using emacsclient -c.
- Connect remotely to the daemon and run another emacsclient -c using X
forwarding.
- Crash the X forwarding connection created in the previous step.
- Go back to the emacsclient running locally on the daemon and run
(set-fontset-font
t '(#xe000 . #xf8ff) "Symbols Nerd Font Mono")

The reason that Ben was seeing a crash with a new emacsclient is because he
is using Doom (an Emacs framework) that attached a function to
server-after-make-hook that called set-fontset-font in the above way. As
Eli said, there is really no good reason to run such a hook after the first
frame, and this behavior has been fixed in Doom. (To Ben: try upgrading
Doom and see if it fixes your issue, if not let me know!)

Surprisingly, the segfault still happens even if i explicitly call
delete-frame on the dead frame before calling set-fontset-font. Also, I am
unable to reproduce this bug without Doom (i.e. launching the daemon with
-Q).

I am confused as to why emacs doesn't automatically clean up frames that
have been disconnected like this. If emacs survives a crash of the X
server, it should be able to identify that the display is dead (e.g. by
checking the validity of output_data.x) and remove it from the
(frame-list), preventing any subsequent commands from acting on these
frames. It has to do something more than what delete-frame does, as that
does not fix the issue (even though it removes the frame from the
(frame-list)).

Note: using GTK is very different, as emacs crashes *without* having to run
set-fontset-font (i.e. emacs crashes when the X forwarding connection
crashes). With lucid, emacs continues to run fine with the exception of
this bug for me.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Tue, 09 Apr 2024 22:54:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Tue, 9 Apr 2024 10:16:09 -0500
Hi,

I am able to reproduce this bug without launching a new emacsclient.
Steps to reproduce:

- Start emacs daemon.
- Connect using emacsclient -c.
- Connect remotely to the daemon and run another emacsclient -c using
X forwarding.
- Crash the X forwarding connection created in the previous step.
- Go back to the emacsclient running locally on the daemon and run
(set-fontset-font t '(#xe000 . #xf8ff) "Symbols Nerd Font Mono")

The reason that Ben was seeing a crash with a new emacsclient is
because he is using Doom (an Emacs framework) that attached a function
to server-after-make-hook that called set-fontset-font in the above
way. As Eli said, there is really no good reason to run such a hook
after the first frame, and this behavior has been fixed in Doom. (To
Ben: try upgrading Doom and see if it fixes your issue, if not let me
know!)

Surprisingly, the segfault still happens even if I explicitly call
delete-frame on the dead frame before calling set-fontset-font. Also,
I am unable to reproduce this bug without Doom (i.e. launching the
daemon with -Q).

I am confused as to why emacs doesn't automatically clean up frames
that have been disconnected like this. If emacs survives a crash of
the X server, it should be able to identify that the display is dead
(e.g. by checking the validity of output_data.x) and remove it from
the (frame-list), preventing any subsequent commands from acting on
these frames. It has to do something more than what delete-frame does,
as that does not fix the issue (even though it removes the frame from
the (frame-list)).

Note: using GTK is very different, as emacs crashes *without* having
to run set-fontset-font (i.e. emacs crashes when the X forwarding
connection crashes). With lucid, emacs continues to run fine with the
exception of this bug for me.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Tue, 09 Apr 2024 22:54:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Tue, 9 Apr 2024 12:28:03 -0500
Hi,

I am able to reproduce this bug without launching a new emacsclient.
Steps to reproduce:

- Start emacs daemon.
- Connect using emacsclient -c.
- Connect remotely to the daemon and run another emacsclient -c using
X forwarding.
- Crash the X forwarding connection created in the previous step.
- Go back to the emacsclient running locally on the daemon and run
(set-fontset-font t '(#xe000 . #xf8ff) "Symbols Nerd Font Mono")

The reason that Ben was seeing a crash with a new emacsclient is
because he is using Doom (an Emacs framework) that attached a function
to server-after-make-hook that called set-fontset-font in the above
way. As Eli said, there is really no good reason to run such a hook
after the first frame, and this behavior has been fixed in Doom. (To
Ben: try upgrading Doom and see if it fixes your issue, if not let me
know!)

Surprisingly, the segfault still happens even if I explicitly call
delete-frame on the dead frame before calling set-fontset-font. Also,
I am unable to reproduce this bug without Doom (i.e. launching the
daemon with -Q).

I am confused as to why emacs doesn't automatically clean up frames
that have been disconnected like this. If emacs survives a crash of
the X server, it should be able to identify that the display is dead
(e.g. by checking the validity of output_data.x) and remove it from
the (frame-list), preventing any subsequent commands from acting on
these frames. It has to do something more than what delete-frame does,
as that does not fix the issue (even though it removes the frame from
the (frame-list)).

Note: using GTK is very different, as emacs crashes *without* having
to run set-fontset-font (i.e. emacs crashes when the X forwarding
connection crashes). With lucid, emacs continues to run fine with the
exception of this bug for me.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Tue, 09 Apr 2024 22:55:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Cc: "luangruo <at> yahoo.com" <luangruo <at> yahoo.com>, "eliz <at> gnu.org" <eliz <at> gnu.org>,
 "bschwehn <at> gmail.com" <bschwehn <at> gmail.com>
Subject: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Tue, 9 Apr 2024 20:36:33 +0000
Hi,

I am able to reproduce this bug without launching a new emacsclient.
Steps to reproduce:

- Start emacs daemon.
- Connect using emacsclient -c.
- Connect remotely to the daemon and run another emacsclient -c using X forwarding.
- Crash the X forwarding connection created in the previous step.
- Go back to the emacsclient running locally on the daemon and run
(set-fontset-font t '(#xe000 . #xf8ff) "Symbols Nerd Font Mono")

The reason why Ben was seeing a crash with a new emacsclient is because he is using Doom (an Emacs framework) that attached a function to server-after-make-hook that called set-fontset-font in the above way. As Eli said, there is really no good reason to run such a hook after the first frame, and this behavior has been fixed in Doom. (To Ben: try upgrading Doom and see if it fixes your issue, if not let me know!)

Surprisingly, the segfault still happens even if I explicitly call delete-frame on the dead frame before calling set-fontset-font. Also, I am unable to reproduce this bug without Doom (i.e. launching the daemon with -Q).

I am confused as to why emacs doesn't automatically clean up frames that have been disconnected like this. If emacs survives a crash of the X server, it should be able to identify that the display is dead (e.g. by checking the validity of output_data.x) and remove it from the (frame-list), preventing any subsequent commands from acting on these frames. It has to do something more than what delete-frame does, as that does not fix the issue (even though it removes the frame from the (frame-list)).

Note: using GTK is very different, as emacs crashes *without* having to run set-fontset-font (i.e. emacs crashes when the X forwarding connection crashes). With lucid, emacs continues to run fine with the exception of this bug for me.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Wed, 10 Apr 2024 02:03:02 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Wed, 10 Apr 2024 10:02:06 +0800
George P <georgepanagopo <at> gmail.com> writes:

> Hi,
>
> I am able to reproduce this bug without launching a new emacsclient.
> Steps to reproduce:
>
> - Start emacs daemon.
> - Connect using emacsclient -c.
> - Connect remotely to the daemon and run another emacsclient -c using
> X forwarding.
> - Crash the X forwarding connection created in the previous step.
> - Go back to the emacsclient running locally on the daemon and run
> (set-fontset-font t '(#xe000 . #xf8ff) "Symbols Nerd Font Mono")
>
> The reason that Ben was seeing a crash with a new emacsclient is
> because he is using Doom (an Emacs framework) that attached a function
> to server-after-make-hook that called set-fontset-font in the above
> way. As Eli said, there is really no good reason to run such a hook
> after the first frame, and this behavior has been fixed in Doom. (To
> Ben: try upgrading Doom and see if it fixes your issue, if not let me
> know!)
>
> Surprisingly, the segfault still happens even if I explicitly call
> delete-frame on the dead frame before calling set-fontset-font. Also,
> I am unable to reproduce this bug without Doom (i.e. launching the
> daemon with -Q).
>
> I am confused as to why emacs doesn't automatically clean up frames
> that have been disconnected like this. If emacs survives a crash of
> the X server, it should be able to identify that the display is dead
> (e.g. by checking the validity of output_data.x) and remove it from
> the (frame-list), preventing any subsequent commands from acting on
> these frames. It has to do something more than what delete-frame does,
> as that does not fix the issue (even though it removes the frame from
> the (frame-list)).
>
> Note: using GTK is very different, as emacs crashes *without* having
> to run set-fontset-font (i.e. emacs crashes when the X forwarding
> connection crashes). With lucid, emacs continues to run fine with the
> exception of this bug for me.

I cannot reproduce this crash, but I suspect the culprit is to be found
in the retention of the remote frame beyond the destruction of the X
server connection, which is not detected when Emacs returns to the event
loop, and remains unnoticed until set-fontset-font prompts a request to
be issued that flushes the now-destroyed connection.  Whatever code
issues this request is not robust against abrupt destruction of frames
by the IO error handler and consequently crashes attempting to
dereference the dead frame.

Please attach GDB to the running Emacs daemon and post a backtrace from
such a crash--with any luck, the code responsible will be rather
pathological and easily addressable.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Wed, 10 Apr 2024 15:44:03 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Wed, 10 Apr 2024 10:42:43 -0500
This is the trace I get (similar to Ben's):

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x0000000000506a94 in realize_basic_faces ()
(gdb) where
#0  0x0000000000506a94 in realize_basic_faces ()
#1  0x000000000050979d in recompute_basic_faces ()
#2  0x000000000068b172 in Fset_fontset_font ()
#3  0x00000000005ecdc6 in eval_sub ()
#4  0x00000000005eef49 in Feval ()
#5  0x00007ffff23830d8 in F6576616c2d65787072657373696f6e_eval_expression_0 ()
   from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
#6  0x00000000005e8d61 in Ffuncall ()
#7  0x00000000005e4c41 in Ffuncall_interactively ()
#8  0x00000000005e8d61 in Ffuncall ()
#9  0x00000000005e8f80 in Fapply ()
#10 0x00000000005e65c3 in Fcall_interactively ()
#11 0x00007ffff23876dd in F636f6d6d616e642d65786563757465_command_execute_0 ()
   from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
#12 0x00000000005e8d61 in Ffuncall ()
#13 0x000000000056c05c in command_loop_1 ()
#14 0x00000000005e75af in internal_condition_case ()
#15 0x0000000000556ec6 in command_loop_2 ()
#16 0x00000000005e7513 in internal_catch ()
#17 0x0000000000556e61 in command_loop ()
#18 0x000000000055b9eb in recursive_edit_1 ()
#19 0x000000000055bd6f in Frecursive_edit ()
#20 0x000000000042d184 in main ()

This is probably not that useful without debug symbols though....




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Thu, 11 Apr 2024 00:51:03 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Thu, 11 Apr 2024 08:50:06 +0800
George P <georgepanagopo <at> gmail.com> writes:

> This is the trace I get (similar to Ben's):
>
> Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> 0x0000000000506a94 in realize_basic_faces ()
> (gdb) where
> #0  0x0000000000506a94 in realize_basic_faces ()
> #1  0x000000000050979d in recompute_basic_faces ()
> #2  0x000000000068b172 in Fset_fontset_font ()
> #3  0x00000000005ecdc6 in eval_sub ()
> #4  0x00000000005eef49 in Feval ()
> #5  0x00007ffff23830d8 in F6576616c2d65787072657373696f6e_eval_expression_0 ()
>    from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
> #6  0x00000000005e8d61 in Ffuncall ()
> #7  0x00000000005e4c41 in Ffuncall_interactively ()
> #8  0x00000000005e8d61 in Ffuncall ()
> #9  0x00000000005e8f80 in Fapply ()
> #10 0x00000000005e65c3 in Fcall_interactively ()
> #11 0x00007ffff23876dd in F636f6d6d616e642d65786563757465_command_execute_0 ()
>    from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
> #12 0x00000000005e8d61 in Ffuncall ()
> #13 0x000000000056c05c in command_loop_1 ()
> #14 0x00000000005e75af in internal_condition_case ()
> #15 0x0000000000556ec6 in command_loop_2 ()
> #16 0x00000000005e7513 in internal_catch ()
> #17 0x0000000000556e61 in command_loop ()
> #18 0x000000000055b9eb in recursive_edit_1 ()
> #19 0x000000000055bd6f in Frecursive_edit ()
> #20 0x000000000042d184 in main ()
>
> This is probably not that useful without debug symbols though....

Yes, please install them and generate a new backtrace.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 12 Apr 2024 02:04:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Thu, 11 Apr 2024 22:03:06 -0400
Here is the new trace:

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
5864          XSETFONT (font_object, FRAME_FONT (f));
Missing separate debuginfos, use: dnf debuginfo-install
GConf2-3.2.6-22.el8.x86_64 bzip2-libs-1.0.6-26.el8.x86_64
cairo-1.15.12-6.el8.x86_64 dbus-glib-0.110-2.el8.x86_64
dbus-libs-1.12.8-26.el8.x86_64 dconf-0.28.0-4.el8.x86_64
expat-2.2.5-11.el8.x86_64 fontconfig-2.13.1-4.el8.x86_64
freetype-2.9.1-9.el8.x86_64 glib2-2.56.4-161.el8.x86_64
gmp-6.1.2-10.el8.x86_64 gnutls-3.6.16-8.el8_9.1.x86_64
graphite2-1.3.10-10.el8.x86_64 harfbuzz-1.7.5-3.el8.x86_64
jbigkit-libs-2.1-14.el8.x86_64 libICE-1.0.9-15.el8.x86_64
libSM-1.2.3-1.el8.x86_64 libX11-1.6.8-6.el8.x86_64
libX11-xcb-1.6.8-6.el8.x86_64 libXau-1.0.9-3.el8.x86_64
libXaw-1.0.13-10.el8.x86_64 libXcomposite-0.4.4-14.el8.x86_64
libXcursor-1.1.15-3.el8.x86_64 libXfixes-5.0.3-7.el8.x86_64
libXi-1.7.10-1.el8.x86_64 libXinerama-1.1.4-1.el8.x86_64
libXmu-1.1.3-1.el8.x86_64 libXpm-3.5.12-9.el8_7.x86_64
libXrandr-1.5.2-1.el8.x86_64 libXrender-0.9.10-7.el8.x86_64
libXt-1.1.5-12.el8.x86_64 libacl-2.2.53-1.el8.x86_64
libattr-2.4.48-3.el8.x86_64 libblkid-2.32.1-43.el8.x86_64
libcap-2.48-6.el8_9.x86_64 libffi-3.1-24.el8.x86_64
libgcrypt-1.8.5-7.el8_6.x86_64 libgpg-error-1.31-1.el8.x86_64
libjpeg-turbo-1.5.3-12.el8.x86_64 libmount-2.32.1-43.el8.x86_64
libpng-1.6.34-5.el8.x86_64 libselinux-2.9-8.el8.x86_64
libtasn1-4.13-4.el8_7.x86_64 libtiff-4.0.9-29.el8_8.x86_64
libunistring-0.9.9-3.el8.x86_64 libuuid-2.32.1-43.el8.x86_64
libwebp-1.0.0-9.el8_9.1.x86_64 libxcb-1.13.1-1.el8.x86_64
libxml2-2.9.7-9.el8.11.deshaw.x86_64 lz4-libs-1.8.3-3.el8_4.x86_64
nettle-3.4.1-7.el8.x86_64 p11-kit-0.23.22-1.el8.x86_64
pcre-8.42-6.el8.x86_64 pcre2-10.32-3.el8_6.x86_64
sqlite-libs-3.26.0-19.el8_9.x86_64 systemd-libs-239-78.el8.x86_64
zlib-1.2.11-25.el8.x86_64
(gdb) where
#0  0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
#1  0x0000000000537c3e in realize_basic_faces (f=0x9ff1650) at xfaces.c:5798
#2  0x000000000052aced in recompute_basic_faces (f=0x9ff1650) at xfaces.c:719
#3  0x000000000071d794 in free_realized_fontsets (base=0x7fffec5a731d)
at fontset.c:1372
#4  0x000000000071ebf7 in Fset_fontset_font (fontset=0x30,
characters=0x7fffeb3b7bc3, font_spec=0x15e66cd, frame=0xf3a095,
add=0x0) at fontset.c:1720
#5  0x000000000066ba2f in eval_sub (form=0x7fffeb3b7be3) at eval.c:2539
#6  0x000000000066b1d3 in Feval (form=0x7fffeb3b7be3, lexical=0x30) at
eval.c:2389
#7  0x000000000066d170 in funcall_subr (subr=0xce3580 <Seval>,
numargs=2, args=0x7fffebd4c1b0) at eval.c:3092
#8  0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b86e5,
args_template=513, nargs=2, args=0x7fffebd4c4c0) at bytecode.c:814
#9  0x000000000066d76e in funcall_lambda (fun=0x2c39e95, nargs=0,
arg_vector=0x7fffffffba60) at eval.c:3194
#10 0x000000000066cc24 in funcall_general (fun=0x2c39e95, numargs=0,
args=0x7fffffffba60) at eval.c:2972
#11 0x000000000066cea9 in Ffuncall (nargs=1, args=0x7fffffffba58) at eval.c:3022
#12 0x0000000000665f0c in call0 (fn=0x2c39e95) at lisp.h:3503
#13 0x0000000000668dcb in Fhandler_bind_1 (nargs=3,
args=0x7fffebd4c128) at eval.c:1403
#14 0x000000000066d369 in funcall_subr (subr=0xce3440
<Shandler_bind_1>, numargs=3, args=0x7fffebd4c128) at eval.c:3113
#15 0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b17e5,
args_template=1025, nargs=4, args=0x7fffffffc2c0) at bytecode.c:814
#16 0x000000000066d76e in funcall_lambda (fun=0x7fffec2b17e5, nargs=4,
arg_vector=0x7fffffffc2a0) at eval.c:3194
#17 0x000000000066cc24 in funcall_general (fun=0x7fffec2b17e5,
numargs=4, args=0x7fffffffc2a0) at eval.c:2972
#18 0x000000000066cea9 in Ffuncall (nargs=5, args=0x7fffffffc298) at eval.c:3022
#19 0x0000000000662c69 in Ffuncall_interactively (nargs=5,
args=0x7fffffffc298) at callint.c:250
#20 0x000000000066d369 in funcall_subr (subr=0xce2cc0
<Sfuncall_interactively>, numargs=5, args=0x7fffffffc298) at
eval.c:3113
#21 0x000000000066cbd8 in funcall_general (fun=0xce2cc5
<Sfuncall_interactively+5>, numargs=5, args=0x7fffffffc298) at
eval.c:2968
#22 0x000000000066cea9 in Ffuncall (nargs=6, args=0x7fffffffc290) at eval.c:3022
#23 0x000000000066c358 in Fapply (nargs=3, args=0x7fffffffc3d0) at eval.c:2693
#24 0x0000000000663085 in Fcall_interactively
(function=0x7fffeb5542f0, record_flag=0x0, keys=0x70ae4a5) at
callint.c:342
#25 0x000000000066d19f in funcall_subr (subr=0xce2d00
<Scall_interactively>, numargs=3, args=0x7fffebd4c070) at eval.c:3094
#26 0x00000000006bf470 in exec_byte_code (fun=0x7fffec92a33d,
args_template=1025, nargs=1, args=0x7fffffffcda0) at bytecode.c:814
#27 0x000000000066d76e in funcall_lambda (fun=0x7fffec92a33d, nargs=1,
arg_vector=0x7fffffffcd98) at eval.c:3194
#28 0x000000000066cc24 in funcall_general (fun=0x7fffec92a33d,
numargs=1, args=0x7fffffffcd98) at eval.c:2972
#29 0x000000000066cea9 in Ffuncall (nargs=2, args=0x7fffffffcd90) at eval.c:3022
#30 0x00000000005aac1f in command_loop_1 () at keyboard.c:1549
#31 0x0000000000669463 in internal_condition_case (bfun=0x5aa419
<command_loop_1>, handlers=0x90, hfun=0x5a99e3 <cmd_error>) at
eval.c:1537
#32 0x00000000005aa088 in command_loop_2 (handlers=0x90) at keyboard.c:1167
#33 0x000000000066897e in internal_catch (tag=0x10c20, func=0x5aa065
<command_loop_2>, arg=0x90) at eval.c:1217
#34 0x00000000005aa020 in command_loop () at keyboard.c:1145
#35 0x00000000005a9592 in recursive_edit_1 () at keyboard.c:753
#36 0x00000000005a973a in Frecursive_edit () at keyboard.c:836
#37 0x00000000005a5c81 in main (argc=2, argv=0x7fffffffd1e8) at emacs.c:2618
(gdb) print f->output_data
$1 = {tty = 0x0, x = 0x0, w32 = 0x0, ns = 0x0, pgtk = 0x0, haiku =
0x0, android = 0x0}

This is using the master branch on commit
0fab2649e288c7a350018293443e709eba6b0fe2. Let me know if you want me
to do more digging in gdb.

On Wed, Apr 10, 2024 at 8:50 PM Po Lu <luangruo <at> yahoo.com> wrote:
>
> George P <georgepanagopo <at> gmail.com> writes:
>
> > This is the trace I get (similar to Ben's):
> >
> > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> > 0x0000000000506a94 in realize_basic_faces ()
> > (gdb) where
> > #0  0x0000000000506a94 in realize_basic_faces ()
> > #1  0x000000000050979d in recompute_basic_faces ()
> > #2  0x000000000068b172 in Fset_fontset_font ()
> > #3  0x00000000005ecdc6 in eval_sub ()
> > #4  0x00000000005eef49 in Feval ()
> > #5  0x00007ffff23830d8 in F6576616c2d65787072657373696f6e_eval_expression_0 ()
> >    from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
> > #6  0x00000000005e8d61 in Ffuncall ()
> > #7  0x00000000005e4c41 in Ffuncall_interactively ()
> > #8  0x00000000005e8d61 in Ffuncall ()
> > #9  0x00000000005e8f80 in Fapply ()
> > #10 0x00000000005e65c3 in Fcall_interactively ()
> > #11 0x00007ffff23876dd in F636f6d6d616e642d65786563757465_command_execute_0 ()
> >    from /nix/store/1db10dgbfwzb5q3m78f497arkpv34y21-emacs-29.1/bin/../lib/emacs/29.1/native-lisp/29.1-41778d84/preloaded/simple-fab5b0cf-a050dc2b.eln
> > #12 0x00000000005e8d61 in Ffuncall ()
> > #13 0x000000000056c05c in command_loop_1 ()
> > #14 0x00000000005e75af in internal_condition_case ()
> > #15 0x0000000000556ec6 in command_loop_2 ()
> > #16 0x00000000005e7513 in internal_catch ()
> > #17 0x0000000000556e61 in command_loop ()
> > #18 0x000000000055b9eb in recursive_edit_1 ()
> > #19 0x000000000055bd6f in Frecursive_edit ()
> > #20 0x000000000042d184 in main ()
> >
> > This is probably not that useful without debug symbols though....
>
> Yes, please install them and generate a new backtrace.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sat, 13 Apr 2024 01:53:02 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 13 Apr 2024 09:51:49 +0800
George P <georgepanagopo <at> gmail.com> writes:

> Here is the new trace:
>
> Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> 0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
> 5864          XSETFONT (font_object, FRAME_FONT (f));
> Missing separate debuginfos, use: dnf debuginfo-install
> GConf2-3.2.6-22.el8.x86_64 bzip2-libs-1.0.6-26.el8.x86_64
> cairo-1.15.12-6.el8.x86_64 dbus-glib-0.110-2.el8.x86_64
> dbus-libs-1.12.8-26.el8.x86_64 dconf-0.28.0-4.el8.x86_64
> expat-2.2.5-11.el8.x86_64 fontconfig-2.13.1-4.el8.x86_64
> freetype-2.9.1-9.el8.x86_64 glib2-2.56.4-161.el8.x86_64
> gmp-6.1.2-10.el8.x86_64 gnutls-3.6.16-8.el8_9.1.x86_64
> graphite2-1.3.10-10.el8.x86_64 harfbuzz-1.7.5-3.el8.x86_64
> jbigkit-libs-2.1-14.el8.x86_64 libICE-1.0.9-15.el8.x86_64
> libSM-1.2.3-1.el8.x86_64 libX11-1.6.8-6.el8.x86_64
> libX11-xcb-1.6.8-6.el8.x86_64 libXau-1.0.9-3.el8.x86_64
> libXaw-1.0.13-10.el8.x86_64 libXcomposite-0.4.4-14.el8.x86_64
> libXcursor-1.1.15-3.el8.x86_64 libXfixes-5.0.3-7.el8.x86_64
> libXi-1.7.10-1.el8.x86_64 libXinerama-1.1.4-1.el8.x86_64
> libXmu-1.1.3-1.el8.x86_64 libXpm-3.5.12-9.el8_7.x86_64
> libXrandr-1.5.2-1.el8.x86_64 libXrender-0.9.10-7.el8.x86_64
> libXt-1.1.5-12.el8.x86_64 libacl-2.2.53-1.el8.x86_64
> libattr-2.4.48-3.el8.x86_64 libblkid-2.32.1-43.el8.x86_64
> libcap-2.48-6.el8_9.x86_64 libffi-3.1-24.el8.x86_64
> libgcrypt-1.8.5-7.el8_6.x86_64 libgpg-error-1.31-1.el8.x86_64
> libjpeg-turbo-1.5.3-12.el8.x86_64 libmount-2.32.1-43.el8.x86_64
> libpng-1.6.34-5.el8.x86_64 libselinux-2.9-8.el8.x86_64
> libtasn1-4.13-4.el8_7.x86_64 libtiff-4.0.9-29.el8_8.x86_64
> libunistring-0.9.9-3.el8.x86_64 libuuid-2.32.1-43.el8.x86_64
> libwebp-1.0.0-9.el8_9.1.x86_64 libxcb-1.13.1-1.el8.x86_64
> libxml2-2.9.7-9.el8.11.deshaw.x86_64 lz4-libs-1.8.3-3.el8_4.x86_64
> nettle-3.4.1-7.el8.x86_64 p11-kit-0.23.22-1.el8.x86_64
> pcre-8.42-6.el8.x86_64 pcre2-10.32-3.el8_6.x86_64
> sqlite-libs-3.26.0-19.el8_9.x86_64 systemd-libs-239-78.el8.x86_64
> zlib-1.2.11-25.el8.x86_64
> (gdb) where
> #0  0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
> #1  0x0000000000537c3e in realize_basic_faces (f=0x9ff1650) at xfaces.c:5798
> #2  0x000000000052aced in recompute_basic_faces (f=0x9ff1650) at xfaces.c:719
> #3  0x000000000071d794 in free_realized_fontsets (base=0x7fffec5a731d)
> at fontset.c:1372
> #4  0x000000000071ebf7 in Fset_fontset_font (fontset=0x30,
> characters=0x7fffeb3b7bc3, font_spec=0x15e66cd, frame=0xf3a095,
> add=0x0) at fontset.c:1720
> #5  0x000000000066ba2f in eval_sub (form=0x7fffeb3b7be3) at eval.c:2539
> #6  0x000000000066b1d3 in Feval (form=0x7fffeb3b7be3, lexical=0x30) at
> eval.c:2389
> #7  0x000000000066d170 in funcall_subr (subr=0xce3580 <Seval>,
> numargs=2, args=0x7fffebd4c1b0) at eval.c:3092
> #8  0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b86e5,
> args_template=513, nargs=2, args=0x7fffebd4c4c0) at bytecode.c:814
> #9  0x000000000066d76e in funcall_lambda (fun=0x2c39e95, nargs=0,
> arg_vector=0x7fffffffba60) at eval.c:3194
> #10 0x000000000066cc24 in funcall_general (fun=0x2c39e95, numargs=0,
> args=0x7fffffffba60) at eval.c:2972
> #11 0x000000000066cea9 in Ffuncall (nargs=1, args=0x7fffffffba58) at eval.c:3022
> #12 0x0000000000665f0c in call0 (fn=0x2c39e95) at lisp.h:3503
> #13 0x0000000000668dcb in Fhandler_bind_1 (nargs=3,
> args=0x7fffebd4c128) at eval.c:1403
> #14 0x000000000066d369 in funcall_subr (subr=0xce3440
> <Shandler_bind_1>, numargs=3, args=0x7fffebd4c128) at eval.c:3113
> #15 0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b17e5,
> args_template=1025, nargs=4, args=0x7fffffffc2c0) at bytecode.c:814
> #16 0x000000000066d76e in funcall_lambda (fun=0x7fffec2b17e5, nargs=4,
> arg_vector=0x7fffffffc2a0) at eval.c:3194
> #17 0x000000000066cc24 in funcall_general (fun=0x7fffec2b17e5,
> numargs=4, args=0x7fffffffc2a0) at eval.c:2972
> #18 0x000000000066cea9 in Ffuncall (nargs=5, args=0x7fffffffc298) at eval.c:3022
> #19 0x0000000000662c69 in Ffuncall_interactively (nargs=5,
> args=0x7fffffffc298) at callint.c:250
> #20 0x000000000066d369 in funcall_subr (subr=0xce2cc0
> <Sfuncall_interactively>, numargs=5, args=0x7fffffffc298) at
> eval.c:3113
> #21 0x000000000066cbd8 in funcall_general (fun=0xce2cc5
> <Sfuncall_interactively+5>, numargs=5, args=0x7fffffffc298) at
> eval.c:2968
> #22 0x000000000066cea9 in Ffuncall (nargs=6, args=0x7fffffffc290) at eval.c:3022
> #23 0x000000000066c358 in Fapply (nargs=3, args=0x7fffffffc3d0) at eval.c:2693
> #24 0x0000000000663085 in Fcall_interactively
> (function=0x7fffeb5542f0, record_flag=0x0, keys=0x70ae4a5) at
> callint.c:342
> #25 0x000000000066d19f in funcall_subr (subr=0xce2d00
> <Scall_interactively>, numargs=3, args=0x7fffebd4c070) at eval.c:3094
> #26 0x00000000006bf470 in exec_byte_code (fun=0x7fffec92a33d,
> args_template=1025, nargs=1, args=0x7fffffffcda0) at bytecode.c:814
> #27 0x000000000066d76e in funcall_lambda (fun=0x7fffec92a33d, nargs=1,
> arg_vector=0x7fffffffcd98) at eval.c:3194
> #28 0x000000000066cc24 in funcall_general (fun=0x7fffec92a33d,
> numargs=1, args=0x7fffffffcd98) at eval.c:2972
> #29 0x000000000066cea9 in Ffuncall (nargs=2, args=0x7fffffffcd90) at eval.c:3022
> #30 0x00000000005aac1f in command_loop_1 () at keyboard.c:1549
> #31 0x0000000000669463 in internal_condition_case (bfun=0x5aa419
> <command_loop_1>, handlers=0x90, hfun=0x5a99e3 <cmd_error>) at
> eval.c:1537
> #32 0x00000000005aa088 in command_loop_2 (handlers=0x90) at keyboard.c:1167
> #33 0x000000000066897e in internal_catch (tag=0x10c20, func=0x5aa065
> <command_loop_2>, arg=0x90) at eval.c:1217
> #34 0x00000000005aa020 in command_loop () at keyboard.c:1145
> #35 0x00000000005a9592 in recursive_edit_1 () at keyboard.c:753
> #36 0x00000000005a973a in Frecursive_edit () at keyboard.c:836
> #37 0x00000000005a5c81 in main (argc=2, argv=0x7fffffffd1e8) at emacs.c:2618
> (gdb) print f->output_data
> $1 = {tty = 0x0, x = 0x0, w32 = 0x0, ns = 0x0, pgtk = 0x0, haiku =
> 0x0, android = 0x0}
>
> This is using the master branch on commit
> 0fab2649e288c7a350018293443e709eba6b0fe2. Let me know if you want me
> to do more digging in gdb.

Yes please--this backtrace doesn't convey enough information to
establish when the disconnect is first detected, so please place another
breakpoint on `x_io_error_quitter', repeat this exercise, and post
backtraces from both the new and the existing breakpoint.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sat, 13 Apr 2024 07:48:03 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 13 Apr 2024 03:46:25 -0400
[Message part 1 (text/plain, inline)]
I have attached the full backtraces for breakpoints on
`x_io_error_quitter`, `delete_frame`, and the crash point at the same
commit as before. Hope it helps!

On Fri, Apr 12, 2024 at 9:52 PM Po Lu <luangruo <at> yahoo.com> wrote:
>
> George P <georgepanagopo <at> gmail.com> writes:
>
> > Here is the new trace:
> >
> > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> > 0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
> > 5864          XSETFONT (font_object, FRAME_FONT (f));
> > Missing separate debuginfos, use: dnf debuginfo-install
> > GConf2-3.2.6-22.el8.x86_64 bzip2-libs-1.0.6-26.el8.x86_64
> > cairo-1.15.12-6.el8.x86_64 dbus-glib-0.110-2.el8.x86_64
> > dbus-libs-1.12.8-26.el8.x86_64 dconf-0.28.0-4.el8.x86_64
> > expat-2.2.5-11.el8.x86_64 fontconfig-2.13.1-4.el8.x86_64
> > freetype-2.9.1-9.el8.x86_64 glib2-2.56.4-161.el8.x86_64
> > gmp-6.1.2-10.el8.x86_64 gnutls-3.6.16-8.el8_9.1.x86_64
> > graphite2-1.3.10-10.el8.x86_64 harfbuzz-1.7.5-3.el8.x86_64
> > jbigkit-libs-2.1-14.el8.x86_64 libICE-1.0.9-15.el8.x86_64
> > libSM-1.2.3-1.el8.x86_64 libX11-1.6.8-6.el8.x86_64
> > libX11-xcb-1.6.8-6.el8.x86_64 libXau-1.0.9-3.el8.x86_64
> > libXaw-1.0.13-10.el8.x86_64 libXcomposite-0.4.4-14.el8.x86_64
> > libXcursor-1.1.15-3.el8.x86_64 libXfixes-5.0.3-7.el8.x86_64
> > libXi-1.7.10-1.el8.x86_64 libXinerama-1.1.4-1.el8.x86_64
> > libXmu-1.1.3-1.el8.x86_64 libXpm-3.5.12-9.el8_7.x86_64
> > libXrandr-1.5.2-1.el8.x86_64 libXrender-0.9.10-7.el8.x86_64
> > libXt-1.1.5-12.el8.x86_64 libacl-2.2.53-1.el8.x86_64
> > libattr-2.4.48-3.el8.x86_64 libblkid-2.32.1-43.el8.x86_64
> > libcap-2.48-6.el8_9.x86_64 libffi-3.1-24.el8.x86_64
> > libgcrypt-1.8.5-7.el8_6.x86_64 libgpg-error-1.31-1.el8.x86_64
> > libjpeg-turbo-1.5.3-12.el8.x86_64 libmount-2.32.1-43.el8.x86_64
> > libpng-1.6.34-5.el8.x86_64 libselinux-2.9-8.el8.x86_64
> > libtasn1-4.13-4.el8_7.x86_64 libtiff-4.0.9-29.el8_8.x86_64
> > libunistring-0.9.9-3.el8.x86_64 libuuid-2.32.1-43.el8.x86_64
> > libwebp-1.0.0-9.el8_9.1.x86_64 libxcb-1.13.1-1.el8.x86_64
> > libxml2-2.9.7-9.el8.11.deshaw.x86_64 lz4-libs-1.8.3-3.el8_4.x86_64
> > nettle-3.4.1-7.el8.x86_64 p11-kit-0.23.22-1.el8.x86_64
> > pcre-8.42-6.el8.x86_64 pcre2-10.32-3.el8_6.x86_64
> > sqlite-libs-3.26.0-19.el8_9.x86_64 systemd-libs-239-78.el8.x86_64
> > zlib-1.2.11-25.el8.x86_64
> > (gdb) where
> > #0  0x0000000000537fb2 in realize_default_face (f=0x9ff1650) at xfaces.c:5864
> > #1  0x0000000000537c3e in realize_basic_faces (f=0x9ff1650) at xfaces.c:5798
> > #2  0x000000000052aced in recompute_basic_faces (f=0x9ff1650) at xfaces.c:719
> > #3  0x000000000071d794 in free_realized_fontsets (base=0x7fffec5a731d)
> > at fontset.c:1372
> > #4  0x000000000071ebf7 in Fset_fontset_font (fontset=0x30,
> > characters=0x7fffeb3b7bc3, font_spec=0x15e66cd, frame=0xf3a095,
> > add=0x0) at fontset.c:1720
> > #5  0x000000000066ba2f in eval_sub (form=0x7fffeb3b7be3) at eval.c:2539
> > #6  0x000000000066b1d3 in Feval (form=0x7fffeb3b7be3, lexical=0x30) at
> > eval.c:2389
> > #7  0x000000000066d170 in funcall_subr (subr=0xce3580 <Seval>,
> > numargs=2, args=0x7fffebd4c1b0) at eval.c:3092
> > #8  0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b86e5,
> > args_template=513, nargs=2, args=0x7fffebd4c4c0) at bytecode.c:814
> > #9  0x000000000066d76e in funcall_lambda (fun=0x2c39e95, nargs=0,
> > arg_vector=0x7fffffffba60) at eval.c:3194
> > #10 0x000000000066cc24 in funcall_general (fun=0x2c39e95, numargs=0,
> > args=0x7fffffffba60) at eval.c:2972
> > #11 0x000000000066cea9 in Ffuncall (nargs=1, args=0x7fffffffba58) at eval.c:3022
> > #12 0x0000000000665f0c in call0 (fn=0x2c39e95) at lisp.h:3503
> > #13 0x0000000000668dcb in Fhandler_bind_1 (nargs=3,
> > args=0x7fffebd4c128) at eval.c:1403
> > #14 0x000000000066d369 in funcall_subr (subr=0xce3440
> > <Shandler_bind_1>, numargs=3, args=0x7fffebd4c128) at eval.c:3113
> > #15 0x00000000006bf470 in exec_byte_code (fun=0x7fffec2b17e5,
> > args_template=1025, nargs=4, args=0x7fffffffc2c0) at bytecode.c:814
> > #16 0x000000000066d76e in funcall_lambda (fun=0x7fffec2b17e5, nargs=4,
> > arg_vector=0x7fffffffc2a0) at eval.c:3194
> > #17 0x000000000066cc24 in funcall_general (fun=0x7fffec2b17e5,
> > numargs=4, args=0x7fffffffc2a0) at eval.c:2972
> > #18 0x000000000066cea9 in Ffuncall (nargs=5, args=0x7fffffffc298) at eval.c:3022
> > #19 0x0000000000662c69 in Ffuncall_interactively (nargs=5,
> > args=0x7fffffffc298) at callint.c:250
> > #20 0x000000000066d369 in funcall_subr (subr=0xce2cc0
> > <Sfuncall_interactively>, numargs=5, args=0x7fffffffc298) at
> > eval.c:3113
> > #21 0x000000000066cbd8 in funcall_general (fun=0xce2cc5
> > <Sfuncall_interactively+5>, numargs=5, args=0x7fffffffc298) at
> > eval.c:2968
> > #22 0x000000000066cea9 in Ffuncall (nargs=6, args=0x7fffffffc290) at eval.c:3022
> > #23 0x000000000066c358 in Fapply (nargs=3, args=0x7fffffffc3d0) at eval.c:2693
> > #24 0x0000000000663085 in Fcall_interactively
> > (function=0x7fffeb5542f0, record_flag=0x0, keys=0x70ae4a5) at
> > callint.c:342
> > #25 0x000000000066d19f in funcall_subr (subr=0xce2d00
> > <Scall_interactively>, numargs=3, args=0x7fffebd4c070) at eval.c:3094
> > #26 0x00000000006bf470 in exec_byte_code (fun=0x7fffec92a33d,
> > args_template=1025, nargs=1, args=0x7fffffffcda0) at bytecode.c:814
> > #27 0x000000000066d76e in funcall_lambda (fun=0x7fffec92a33d, nargs=1,
> > arg_vector=0x7fffffffcd98) at eval.c:3194
> > #28 0x000000000066cc24 in funcall_general (fun=0x7fffec92a33d,
> > numargs=1, args=0x7fffffffcd98) at eval.c:2972
> > #29 0x000000000066cea9 in Ffuncall (nargs=2, args=0x7fffffffcd90) at eval.c:3022
> > #30 0x00000000005aac1f in command_loop_1 () at keyboard.c:1549
> > #31 0x0000000000669463 in internal_condition_case (bfun=0x5aa419
> > <command_loop_1>, handlers=0x90, hfun=0x5a99e3 <cmd_error>) at
> > eval.c:1537
> > #32 0x00000000005aa088 in command_loop_2 (handlers=0x90) at keyboard.c:1167
> > #33 0x000000000066897e in internal_catch (tag=0x10c20, func=0x5aa065
> > <command_loop_2>, arg=0x90) at eval.c:1217
> > #34 0x00000000005aa020 in command_loop () at keyboard.c:1145
> > #35 0x00000000005a9592 in recursive_edit_1 () at keyboard.c:753
> > #36 0x00000000005a973a in Frecursive_edit () at keyboard.c:836
> > #37 0x00000000005a5c81 in main (argc=2, argv=0x7fffffffd1e8) at emacs.c:2618
> > (gdb) print f->output_data
> > $1 = {tty = 0x0, x = 0x0, w32 = 0x0, ns = 0x0, pgtk = 0x0, haiku =
> > 0x0, android = 0x0}
> >
> > This is using the master branch on commit
> > 0fab2649e288c7a350018293443e709eba6b0fe2. Let me know if you want me
> > to do more digging in gdb.
>
> Yes please--this backtrace doesn't convey enough information to
> establish when the disconnect is first detected, so please place another
> breakpoint on `x_io_error_quitter', repeat this exercise, and post
> backtraces from both the new and the existing breakpoint.
[gdb-trace-66151.txt (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sat, 13 Apr 2024 11:46:02 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 13 Apr 2024 19:45:24 +0800
George P <georgepanagopo <at> gmail.com> writes:

> I have attached the full backtraces for breakpoints on
> `x_io_error_quitter`, `delete_frame`, and the crash point at the same
> commit as before. Hope it helps!

Thanks.  It appears that my first diagnosis missed the mark, but no
matter: I've now installed a fix on master, please test.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sat, 13 Apr 2024 17:58:01 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 13 Apr 2024 13:56:04 -0400
[Message part 1 (text/plain, inline)]
Thanks a lot for your efforts, but unfortunately the crash persists. I
have attached the same backtraces as before but on commit 17e26cf57e1.

Please let me know if you need more information.

On Sat, Apr 13, 2024 at 7:45 AM Po Lu <luangruo <at> yahoo.com> wrote:
>
> George P <georgepanagopo <at> gmail.com> writes:
>
> > I have attached the full backtraces for breakpoints on
> > `x_io_error_quitter`, `delete_frame`, and the crash point at the same
> > commit as before. Hope it helps!
>
> Thanks.  It appears that my first diagnosis missed the mark, but no
> matter: I've now installed a fix on master, please test.
[gdb-trace-66151-2.txt (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Thu, 18 Apr 2024 10:41:21 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: luangruo <at> yahoo.com, George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Thu, 18 Apr 2024 13:40:23 +0300
> Cc: 66151 <at> debbugs.gnu.org
> From: George P <georgepanagopo <at> gmail.com>
> Date: Sat, 13 Apr 2024 13:56:04 -0400
> 
> Thanks a lot for your efforts, but unfortunately the crash persists. I
> have attached the same backtraces as before but on commit 17e26cf57e1.
> 
> Please let me know if you need more information.

Thanks.

Po Lu, how should we go about making some progress here?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 19 Apr 2024 09:08:01 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66151 <at> debbugs.gnu.org, George P <georgepanagopo <at> gmail.com>
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 19 Apr 2024 17:07:19 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: 66151 <at> debbugs.gnu.org
>> From: George P <georgepanagopo <at> gmail.com>
>> Date: Sat, 13 Apr 2024 13:56:04 -0400
>> 
>> Thanks a lot for your efforts, but unfortunately the crash persists. I
>> have attached the same backtraces as before but on commit 17e26cf57e1.
>> 
>> Please let me know if you need more information.
>
> Thanks.
>
> Po Lu, how should we go about making some progress here?

Thanks.  My hands are quite full and will remain so into the next week,
but if this crude attempt to sidestep the crash works, it should suffice
until I establish why dead frames are still being retained in
Vfontset_table.  George?

diff --git a/src/fontset.c b/src/fontset.c
index d27fa22015e..d969e5f1180 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1366,10 +1366,11 @@ free_realized_fontsets (Lisp_Object base)
       if (CHAR_TABLE_P (this) && EQ (FONTSET_BASE (this), base))
 	{
 	  Fclear_face_cache (Qt);
-	  /* This is in case some Lisp calls this function and then
-	     proceeds with calling some other function, like font-at,
-	     which needs the basic faces.  */
-	  recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
+	  if (!FRAME_LIVE_P (XFRAME (FONTSET_FRAME (this))))
+	    /* This is in case some Lisp calls this function and then
+	       proceeds with calling some other function, like font-at,
+	       which needs the basic faces.  */
+	    recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
 	  break;
 	}
     }




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 19 Apr 2024 11:17:04 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org, georgepanagopo <at> gmail.com
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 19 Apr 2024 14:15:39 +0300
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: George P <georgepanagopo <at> gmail.com>,  66151 <at> debbugs.gnu.org
> Date: Fri, 19 Apr 2024 17:07:19 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Po Lu, how should we go about making some progress here?
> 
> Thanks.  My hands are quite full and will remain so into the next week,
> but if this crude attempt to sidestep the crash works, it should suffice
> until I establish why dead frames are still being retained in
> Vfontset_table.  George?
> 
> diff --git a/src/fontset.c b/src/fontset.c
> index d27fa22015e..d969e5f1180 100644
> --- a/src/fontset.c
> +++ b/src/fontset.c
> @@ -1366,10 +1366,11 @@ free_realized_fontsets (Lisp_Object base)
>        if (CHAR_TABLE_P (this) && EQ (FONTSET_BASE (this), base))
>  	{
>  	  Fclear_face_cache (Qt);
> -	  /* This is in case some Lisp calls this function and then
> -	     proceeds with calling some other function, like font-at,
> -	     which needs the basic faces.  */
> -	  recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
> +	  if (!FRAME_LIVE_P (XFRAME (FONTSET_FRAME (this))))
> +	    /* This is in case some Lisp calls this function and then
> +	       proceeds with calling some other function, like font-at,
> +	       which needs the basic faces.  */
> +	    recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
>  	  break;
>  	}
>      }

Are you sure it should be !FRAME_LIVE_P ?  Why would we condition the
call to recompute_basic_faces on the fact that the relevant frame is
no longer alive?  What am I missing?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Fri, 19 Apr 2024 12:01:04 GMT) Full text and rfc822 format available.

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

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66151 <at> debbugs.gnu.org, georgepanagopo <at> gmail.com
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 19 Apr 2024 20:00:24 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

> Are you sure it should be !FRAME_LIVE_P?

No, it should be the express opposite.

> Why would we condition the call to recompute_basic_faces on the fact
> that the relevant frame is no longer alive?  What am I missing?

Nothing, if my hurried preparation of the patch counts as nothing...  It
was altogether less successful than my simultaneous preparation for rush
hour traffic.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sat, 27 Apr 2024 08:39:15 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: georgepanagopo <at> gmail.com, Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sat, 27 Apr 2024 11:37:36 +0300
Ping!  George, could you please try Po Lu's suggestion and report
back?

> From: Po Lu <luangruo <at> yahoo.com>
> Cc: georgepanagopo <at> gmail.com,  66151 <at> debbugs.gnu.org
> Date: Fri, 19 Apr 2024 20:00:24 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Are you sure it should be !FRAME_LIVE_P?
> 
> No, it should be the express opposite.
> 
> > Why would we condition the call to recompute_basic_faces on the fact
> > that the relevant frame is no longer alive?  What am I missing?
> 
> Nothing, if my hurried preparation of the patch counts as nothing...  It
> was altogether less successful than my simultaneous preparation for rush
> hour traffic.
> 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Sun, 05 May 2024 16:27:02 GMT) Full text and rfc822 format available.

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

From: George P <georgepanagopo <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Po Lu <luangruo <at> yahoo.com>, 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Sun, 5 May 2024 12:25:45 -0400
Sorry for the late reply! I can confirm that the crash goes away with
the above patch on the latest master (with !FRAME_LIVE_P replaced with
FRAME_LIVE_P of course).

I do not know if there are any other side effects of the dead frame
being retained in Vfontset_table.

On Sat, Apr 27, 2024 at 4:37 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> Ping!  George, could you please try Po Lu's suggestion and report
> back?
>
> > From: Po Lu <luangruo <at> yahoo.com>
> > Cc: georgepanagopo <at> gmail.com,  66151 <at> debbugs.gnu.org
> > Date: Fri, 19 Apr 2024 20:00:24 +0800
> >
> > Eli Zaretskii <eliz <at> gnu.org> writes:
> >
> > > Are you sure it should be !FRAME_LIVE_P?
> >
> > No, it should be the express opposite.
> >
> > > Why would we condition the call to recompute_basic_faces on the fact
> > > that the relevant frame is no longer alive?  What am I missing?
> >
> > Nothing, if my hurried preparation of the patch counts as nothing...  It
> > was altogether less successful than my simultaneous preparation for rush
> > hour traffic.
> >




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Mon, 06 May 2024 11:04:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: luangruo <at> yahoo.com, George P <georgepanagopo <at> gmail.com>
Cc: 66151 <at> debbugs.gnu.org
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Mon, 06 May 2024 14:02:29 +0300
> From: George P <georgepanagopo <at> gmail.com>
> Date: Sun, 5 May 2024 12:25:45 -0400
> Cc: Po Lu <luangruo <at> yahoo.com>, 66151 <at> debbugs.gnu.org
> 
> Sorry for the late reply! I can confirm that the crash goes away with
> the above patch on the latest master (with !FRAME_LIVE_P replaced with
> FRAME_LIVE_P of course).
> 
> I do not know if there are any other side effects of the dead frame
> being retained in Vfontset_table.

Thanks.

So I guess we can now close this bug (after installing the change)?




Reply sent to Po Lu <luangruo <at> yahoo.com>:
You have taken responsibility. (Tue, 07 May 2024 00:51:02 GMT) Full text and rfc822 format available.

Notification sent to Benjamin Schwehn <bschwehn <at> gmail.com>:
bug acknowledged by developer. (Tue, 07 May 2024 00:51:02 GMT) Full text and rfc822 format available.

Message #88 received at 66151-done <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66151-done <at> debbugs.gnu.org, George P <georgepanagopo <at> gmail.com>
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Tue, 07 May 2024 08:49:21 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: George P <georgepanagopo <at> gmail.com>
>> Date: Sun, 5 May 2024 12:25:45 -0400
>> Cc: Po Lu <luangruo <at> yahoo.com>, 66151 <at> debbugs.gnu.org
>> 
>> Sorry for the late reply! I can confirm that the crash goes away with
>> the above patch on the latest master (with !FRAME_LIVE_P replaced with
>> FRAME_LIVE_P of course).
>> 
>> I do not know if there are any other side effects of the dead frame
>> being retained in Vfontset_table.
>
> Thanks.
>
> So I guess we can now close this bug (after installing the change)?

Yes, now done.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66151; Package emacs. (Tue, 07 May 2024 20:28:02 GMT) Full text and rfc822 format available.

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

From: Benjamin Schwehn <bschwehn <at> gmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Cc: George P <georgepanagopo <at> gmail.com>
Subject: Re: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Tue, 7 May 2024 22:26:36 +0200
On Tue, 9 Apr 2024 at 22:36, George P <georgepanagopo <at> gmail.com> wrote:
>(To Ben: try upgrading Doom and see if it fixes your issue, if not let me know!)

I can confirm that I have not seen this crash since upgrading Doom.
Thank you very much for this investigation!

Ben




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 05 Jun 2024 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 51 days ago.

Previous Next


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