Subject: bug#38569: 27.0.50; Certain emoji crashes with "X protocol error: BadLength"

From: Robert Cochran <[email-masked]>
Date: Wed, 11 Dec 2019 15:41:30 -0800

-----

Open the attached file with a GUI frame. The Emacs process immediately
crashes with

X protocol error: BadLength (poly request too large or internal Xlib
length error) on protocol request 138

This happens to be a development version, but I was initially made aware
of this by a friend (CC'd) who uses his distro's stock Emacs package, so this
has been an issue for some time.

This probably isn't a duplicate of 37895 / 37786 , as the fix listed as
committed - "Fixed by adding "Noto Color Emoji" to face-ignored-fonts
instead" - is definitely applied here (I can see it in the list when I
do "C-h v face-ignored-fonts RET"), so there's something else at play in
this situation.

I tried to run Emacs in GDB, but I couldn't get 'bt full' or
'xbacktrace' to spit out anything that looked remotely useful. I've
probably just managed to mess it up. If it's needed, I'll try again for
more useful output.

-----

In GNU Emacs 27.0.50 (build 1, x86_64-redhat-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2019-12-11 built on SoraLaptop
Repository revision: bad2532f664e11e5b32c1194f2274ba2d1f0116b
Repository branch: master
Windowing system distributor 'Fedora Project', version 11.0.12006000
System Description: Fedora 31 (Workstation Edition)

Recent messages:
Loading gnus...done
Loading paren...done
Loading /home/Sora/.emacs.d/customize.el (source)...done
Packages that are not available: 3 (the rest is already installed), maybe you need to ‘M-x package-refresh-contents’
Loading /home/Sora/quicklisp/slime-helper.el (source)...done
Starting Emacs daemon.
Package cl is deprecated
Package tls is deprecated
When done with this frame, type C-x 5 0
Making completion list...

Configured using:
 'configure --prefix=/home/Sora/local --with-dbus --with-gif --with-jpeg
 --with-png --with-tiff --with-xft --with-xpm --with-x-toolkit=athena
 --with-gpm=no --with-modules --with-gnutls --with-gconf
 --with-imagemagick --with-rsvg --with-libotf --with-m17n_flt
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
 --param=ssp-buffer-size=4 -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS
GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS
LIBSYSTEMD PDUMPER LCMS2 GMP

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

Major mode: Lisp Interaction

Minor modes in effect:
  global-auto-complete-mode: t
  auto-complete-mode: t
  paredit-mode: t
  whitespace-mode: t
  show-paren-mode: t
  display-time-mode: t
  display-battery-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  tab-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/Sora/local/share/emacs/27.0.50/lisp/misc hides /home/Sora/.emacs.d/local-lisp/misc

Features:
(shadow sort mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime dig emacsbug sendmail server slime-fancy slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
flymake-proc flymake warnings lisp-mnt gud apropos compile etags
fileloop xref project arc-mode archive-mode hyperspec thingatpt cl
slime-autoloads org-element avl-tree generator ol-eww ol-rmail ol-mhe
ol-irc ol-info ol-gnus nnir gnus-sum url url-proxy url-privacy
url-expand url-methods url-history mailcap shr url-cookie url-domsuf
url-util svg xml dom gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int
gnus-range message rmc rfc822 mml mml-sec epa derived epg epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader gnus-win ol-docview doc-view jka-compr image-mode exif dired
dired-loaddefs ol-bibtex bibtex ol-bbdb ol-w3m org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete pcomplete comint ansi-color org-list org-faces
org-entities noutline outline easy-mmode org-version ob-emacs-lisp
ob-core ob-eval org-table ol org-keys org-compat advice org-macs
org-loaddefs format-spec cal-menu calendar cal-loaddefs firestorm-notes
ace-window avy ring auto-complete-config auto-complete popup
paredit-menu paredit edmacro kmacro sora-misc eval-and-point-to
interactify-count-lines lisp-family maybe-gnu-c cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
ispell-email ispell rotate-split ert pp ewoc debug backtrace find-func
tls gnutls puny whitespace deeper-blue-theme cl-extra help-mode paren
gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
text-property-search time-date mail-utils mm-util mail-prsvr wid-edit
time battery cus-start cus-load custom-helpers sora-detect tex-site info
package easymenu browse-url url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc 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 elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 331138 15778)
 (symbols 48 31534 1)
 (strings 32 100724 3715)
 (string-bytes 1 3418300)
 (vectors 16 41168)
 (vector-slots 8 488792 24278)
 (floats 8 317 26)
 (intervals 56 470 0)
 (buffers 1000 15))

Thanks,
-- 
~Robert Cochran