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

From: Robert Pluim <[email-masked]>
Date: Thu, 12 Dec 2019 09:50:08 +0100

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

    Robert> -----

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

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

<sigh> Luckily all this goes away when you build --with-cairo, which
should become the default in the next couple of years.

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

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

I canʼt reproduce this on my Fedora31 installation. Probably I donʼt
have the same fonts installed as you.

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

In this kind of situation it helps to run emacs in synchronous
mode. From etc/DEBUG:

    For X protocol errors related to displaying unusual characters or to
    font-related customizations, try invoking Emacs like this:

      XFT_DEBUG=16 emacs -xrm "emacs.synchronous: true"

That XFT_DEBUG should end up telling us what the last font was that Emacs
tried, which is usually the culprit.

Robert