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

From: Robert Cochran <[email-masked]>
Date: Thu, 12 Dec 2019 13:34:46 -0800

Robert Pluim <[email-masked]> writes:

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

I'm running an Emacs regularly updated from master, so I might as well
start doing this, if only to help in catching issues in other
places. Thanks for the pointer.

>     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.
>

So I did that, and indeed, I can see the culprit font on my system. I
have another color emoji font installed on my system, "Emoji One"
according to the Gnome font viewer. It lives in
'/usr/share/fonts/eosrei-emojione/emojione-android.ttf', and is provided
by the eosrei-emojione-fonts package on my system. Strangely, repoquery
doesn't show that any of my installed packages depend on it, so I have
no clue when or why it got pulled in.

The easier thing is to add another exception to face-ignored-fonts, but
at this point it'd be a better idea to deal with it at the font renderer
level. IMO it's not scalable for the solution to be "ok, also add this
font to the exception list", especially as frequently as Emacs has
releases.

Also, Shelvacu's problem was solved by manually adding Noto Color Emoji
to the face-ignored-fonts list. IIRC his Emacs is 26.x?

Thanks for the prompt reply on this, btw.

Cheers,
-- 
~Robert Cochran