Subject: bug#76842: 30.1.50; save-buffers-kill-terminal kills daemon when tooltip-mode is disabled

From: Aaron Zeng <[email-masked]>
Date: Fri, 07 Mar 2025 15:33:24 -0500

When running Emacs in daemon mode, C-x C-c normally just kills the
current client.  However, when tooltip-mode is disabled but a tooltip is
being displayed by some other package, C-x C-c kills the daemon instead.

To reproduce:

1. emacs -Q --daemon
2. emacsclient -c

   At this point, C-x C-c just kills the client.  You can create another
   client for the same daemon by just running emacsclient -c again.

3. M-x tooltip-mode (it is enabled by default; this disables it)
4. M-: (tooltip-show "asdf")
5. Press C-x C-c while the tooltip is displayed (x-show-tooltip-timeout
   defaults to 5 seconds)

After step 5, Emacs pauses briefly and then the client is closed.
However, attempting to create another client fails because the daemon
has also died unexpectedly.

The concrete scenario where this occurred at my site involved Spacemacs
(which disables tooltip-mode) and flycheck-pos-tip-mode (which uses
pos-tip, which uses the same x-show-tip function that tooltip-show
calls).

In GNU Emacs 30.1.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.15.12, Xaw scroll bars) of 2025-02-24 built on
 igm-qws-u22796a
Repository revision: b3f0c1a30a1fee5a81b7a0c6c7f52ec0ef5bade6
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Rocky Linux 8.10 (Green Obsidian)

Configured using:
 'configure --config-cache --with-x-toolkit=lucid --without-gpm
 --without-gconf --without-selinux --without-imagemagick --with-modules
 --with-gif=no --with-cairo --with-rsvg --without-compress-install
 --with-tree-sitter --with-native-compilation=aot
 --prefix=/usr/local/home/garnish/raw-emacs/30-20250224_112805'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBSYSTEMD
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM
XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: /usr/local/home/azeng/workspaces/fe-1129736/+share+/app/emacs/elisp:/usr/local/home/azeng/workspaces/fe-1129736/+share+/app/emacs/site-lisp:/usr/local/home/azeng/workspaces/fe-1129736/+share+/app/emacs/lib/ecaml_plugin/bin:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr completion thingatpt help-fns radix-tree
help-mode emacsbug message mailcap yank-media puny dired dired-loaddefs
rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date subr-x mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 58898 33679) (symbols 48 5809 0) (strings 32 18129 1835)
 (string-bytes 1 549820) (vectors 16 9726)
 (vector-slots 8 136558 11572) (floats 8 24 2) (intervals 56 279 0)
 (buffers 992 11))