Subject: 31.0.50; X protocol error: BadFont

From: Michael Welsh Duggan <[email-masked]>
Date: Mon, 23 Jun 2025 11:24:20 -0400

While using Gnus, the display of one particular summary buffer is
causing all of the frames on this (remote X11) terminal to close.  It
does not, however, crash emacs.  The message in my *Messages* buffer is:

X protocol error: BadFont (invalid Font parameter) on protocol request 56
Serial no: 20736
Failing resource ID (if any): 0x0
Minor code: 0
This is a bug!  Please report this to [email-masked]!

With some difficulty (attempting to save the buffer also causes the
problem) I was able to extract the buffer as a text file.  Viewing that
file in this remote emacs also triggers the problem, so I will likely be
able to recreate this problem on my end.  I am attaching the gzipped
contents of the file in question to this message.

I do not yet know if this problem will happen if I am not in a remote
frame.  Determining that will have to wait until I return home from
work later today.

This emacs is compiled unoptimized with debugging enabled.  I would be
very interested in figuring out where I could add a breakpoint to try to
figure out what is causing this problem.  

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.4) of 2025-05-29 built on miko
Repository revision: f0bec20ac58ab84895b832fc545ea14c442d8332
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12302007
System Description: Debian GNU/Linux 13 (trixie)

Configured using:
 'configure --without-toolkit-scroll-bars --with-x-toolkit=lucid
 --with-native-compilation --with-xinput2 'CFLAGS=-Og -ggdb'
 --with-tree-sitter'

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

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

Major mode: Messages

Minor modes in effect:
  display-time-mode: t
  magit-wip-initial-backup-mode: t
  magit-wip-before-change-mode: t
  magit-wip-after-apply-mode: t
  magit-wip-after-save-mode: t
  magit-wip-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  emacs-gc-stats-mode: t
  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
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/md5i/.config/emacs/elpa/transient-20241001.1031/transient hides /usr/local/share/emacs/31.0.50/lisp/transient

Features:
(shadow emacsbug lisp-mnt tramp-cache time-stamp tramp-sh shortdoc
help-fns radix-tree gnus-draft sieve-mode thai-util thai-word mailalias
smtpmail oc-basic org-element org-persist org-id org-refile
org-element-ast inline avl-tree generator ol-eww eww vtable url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview
doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m
ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src sh-script smie executable ob-comint org-pcomplete
org-list org-footnote org-faces org-entities noutline outline
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs thingatpt find-func cal-menu
calendar cal-loaddefs org-version org-compat org-macs shr-color color
misearch multi-isearch flow-fill mm-archive mule-util sort gnus-cite
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-bcklg qp gnus-async gnus-ml disp-table gnus-topic
nndraft nnmh nnfolder utf-7 epa-file network-stream gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-cache gnus-sum shr pixel-fill kinsoku url-file
svg gnus-demon nntp gnus-group gnus-undo gnutls gnus-start gnus-dbus
gnus-cloud gnus-spec gnus-win flyspell ispell notifications view
pacproxy descr-text tramp trampver tramp-integration files-x
tramp-message tramp-compat parse-time iso8601 tramp-loaddefs time
sieve-manage sasl sasl-anonymous sasl-login sasl-plain rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util sgml-mode facemenu dom python project treesit
ps-print ps-print-loaddefs lpr picture nm dbus xml magit-submodule
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 imenu magit-diff smerge-mode
diff diff-mode track-changes easy-mmode git-commit log-edit pcvs-util
add-log magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor comp comp-cstr comp-run
comp-common rx shell pcomplete server magit-mode transient edmacro
kmacro benchmark magit-git magit-base magit-section format-spec
cursor-sensor crm dash compat nnimap nnmail gnus-int mail-source
gnus-range message sendmail yank-media rfc822 mml mml-sec epa mm-decode
mm-bodies mm-encode mailabbrev gmm-utils mailheader utf7 nnoo gnus
nnheader gnus-util time-date mail-utils range gnus-o365-oauth2 oauth2
url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-gw nsm puny plstore generated generic-x epg rfc6068
epg-config emacs-gc-stats dired-aux ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util cus-edit pp
cus-load wid-edit dired-x compile text-property-search comint ansi-osc
ring ansi-color cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs cl-extra help-mode warnings derived
cmake-mode-autoloads debian-el-autoloads debian-el dired dired-loaddefs
docker-autoloads aio-autoloads emacs-gc-stats-autoloads
groovy-mode-autoloads llvm-ts-mode-autoloads lua-mode-autoloads
magit-autoloads pcase magit-section-autoloads dash-autoloads
markdown-mode-autoloads nodejs-repl-autoloads
rainbow-delimiters-autoloads rust-mode-autoloads s-autoloads
scala-mode-autoloads tablist-autoloads transient-autoloads info
with-editor-autoloads package browse-url xdg url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames native-compile emacs)

Memory information:
((conses 16 1015422 102486) (symbols 48 39333 7)
 (strings 32 177899 17246) (string-bytes 1 5865636) (vectors 16 93257)
 (vector-slots 8 1266980 116787) (floats 8 1594 11790)
 (intervals 56 4442 150) (buffers 1064 42))

-- 
Michael Welsh Duggan
([email-masked])