GNU bug report logs - #38569
27.0.50; Certain emoji crashes with "X protocol error: BadLength"

Previous Next

Package: emacs;

Reported by: Robert Cochran <robert-emacs <at> cochranmail.com>

Date: Wed, 11 Dec 2019 23:42:01 UTC

Severity: normal

Merged with 38788

Found in version 27.0.50

Fixed in version 27.1

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Robert Cochran <robert <at> cochranmail.com>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: Shelvacu <shelvacu <at> gmail.com>, 38569 <at> debbugs.gnu.org, Robert Cochran <robert-emacs <at> cochranmail.com>
Subject: bug#38569: 27.0.50; Certain emoji crashes with "X protocol error: BadLength"
Date: Thu, 12 Dec 2019 13:34:46 -0800
Robert Pluim <rpluim <at> gmail.com> 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




This bug report was last modified 5 years and 133 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.