! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
xfce4-panel crashes when encountering certain unicode characters
Status:
RESOLVED: FIXED
Product:
Xfce4-panel
Component:
General

Comments

Description haarp 2017-08-06 16:18:29 CEST
When a window title contains certain unicode characters, xfce4-panel crashes. It appears to be a problem with how substituted fonts scale the glyphs. The font in question is (probably) Noto Color Emoji, an offending character example is 🦋 ('BUTTERFLY' (U+1F98B)). Apologies for not being to test 4.13 at the moment.

xfce4-panel: /var/tmp/portage/x11-libs/cairo-1.14.8/work/cairo-1.14.8/src/cairo-scaled-font.c:459: _cairo_scaled_glyph_page_destroy: Assertion `!scaled_font->cache_frozen' failed.
Aborted
*** Error in `/usr/lib64/xfce4/panel/wrapper-2.0': double free or corruption (!prev): 0x00000000006c2000 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x6fe5c)[0x7fd122142e5c]
/lib64/libc.so.6(+0x756e6)[0x7fd1221486e6]
/lib64/libc.so.6(+0x75ede)[0x7fd122148ede]
/usr/lib64/libgobject-2.0.so.0(g_closure_invoke+0x145)[0x7fd122fdccf5]
/usr/lib64/libgobject-2.0.so.0(+0x218d1)[0x7fd122fee8d1]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0xf86)[0x7fd122ff7196]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8a)[0x7fd122ff73ca]
/usr/lib64/libxfce4panel-2.0.so.4(+0x9b81)[0x7fd124569b81]
/usr/lib64/libgobject-2.0.so.0(g_object_run_dispose+0x48)[0x7fd122fe31e8]
/usr/lib64/libgtk-3.so.0(+0x37b689)[0x7fd123fea689]
/usr/lib64/libgtk-3.so.0(+0x162a5e)[0x7fd123dd1a5e]
/usr/lib64/libgobject-2.0.so.0(g_closure_invoke+0x145)[0x7fd122fdccf5]
/usr/lib64/libgobject-2.0.so.0(+0x21ca6)[0x7fd122feeca6]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0xf86)[0x7fd122ff7196]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8a)[0x7fd122ff73ca]
/usr/lib64/libgtk-3.so.0(+0x36f57a)[0x7fd123fde57a]
/usr/lib64/libgtk-3.so.0(+0x382728)[0x7fd123ff1728]
/usr/lib64/libgobject-2.0.so.0(g_object_run_dispose+0x48)[0x7fd122fe31e8]
/usr/lib64/libgtk-3.so.0(+0x3a9cfa)[0x7fd124018cfa]
/usr/lib64/libgtk-3.so.0(+0x3aa78e)[0x7fd12401978e]
/usr/lib64/libgdk-3.so.0(+0x5d1b1)[0x7fd123a141b1]
/usr/lib64/libgdk-3.so.0(+0x5d46d)[0x7fd123a1446d]
/usr/lib64/libgdk-3.so.0(gdk_display_get_event+0x79)[0x7fd1239dfab9]
/usr/lib64/libgdk-3.so.0(+0x5d222)[0x7fd123a14222]
/usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x22d)[0x7fd1228e836d]
/usr/lib64/libglib-2.0.so.0(+0x49618)[0x7fd1228e8618]
/usr/lib64/libglib-2.0.so.0(g_main_loop_run+0xc2)[0x7fd1228e8932]
/usr/lib64/libgtk-3.so.0(gtk_main+0x85)[0x7fd123e8fe55]
/usr/lib64/xfce4/panel/wrapper-2.0(main+0x46a)[0x403c2a]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fd1220f3640]
/usr/lib64/xfce4/panel/wrapper-2.0(_start+0x29)[0x4036e9]


The easiest way to trigger it is probably by opening a prepared html file in a browser. Example (assuming Bugzilla does not scramble UTF8):

<html><head><meta charset="utf-8">
<title>🦋</title>
</head></html>
Comment 1 Simon Steinbeiss editbugs 2017-08-14 12:40:07 CEST
This is in general a known problem. I can try to reproduce with 4.13.x, but you need to give me at least some unicode character to try with. The one you pasted was borked by bugzilla, so ideally add the unicode key.
Comment 2 haarp 2017-08-14 20:22:14 CEST
(In reply to Simon Steinbeiss from comment #1)
> This is in general a known problem. I can try to reproduce with 4.13.x, but
> you need to give me at least some unicode character to try with. The one you
> pasted was borked by bugzilla, so ideally add the unicode key.

It's showing up fine for me :) I did post the code already - 'BUTTERFLY' (U+1F98B)
Comment 3 Simon Steinbeiss editbugs 2017-08-15 01:24:03 CEST
Oh sorry, I overlooked that.

For some reason my fontset won't render the butterfly correctly so I tried with another special unicode character:

<html><head><meta charset=utf-8>
<title>🙈</title>
</head></html>

the "see-no-evil" monkey :)

If this crashes the 4.12 panel then the problem has been resolved, because it renders fine in 4.13.1.
Comment 4 haarp 2017-08-15 08:44:25 CEST
The monkey works fine in 4.12. However, it also doesn't seem to substitute Noto Color Emoji for it, so that could also be the reason.
Comment 5 Simon Steinbeiss editbugs 2017-08-15 10:15:39 CEST
Meh :/

So I wonder which font packages I'm missing (xubuntu 17.04) so that the butterfly is not being displayed. I just installed all noto* packages to be sure.
Any clues?
Comment 6 Simon Steinbeiss editbugs 2017-08-15 10:18:53 CEST
FWIW I installed fonts-emojione and now the monkey is displayed in color and it works fine in the panel.
Comment 7 haarp 2017-08-15 10:21:05 CEST
It's possible the noto package doesn't contain Color Emoji.

You could check with `fc-match "Noto Color Emoji"`

And download it from here if it's missing: https://github.com/googlei18n/noto-emoji/blob/master/fonts/NotoColorEmoji.ttf
Comment 8 haarp 2017-08-21 10:22:59 CEST
Created attachment 7291 
glyph rendered too large

Ok, I can confirm that xfce4-panel 4.13.1 does NOT crash.

However, it displays the affected glyphs way, way too large. I'm very sure this is a font renderer bug tho, and not a panel bug,
Comment 9 Simon Steinbeiss editbugs 2017-08-22 01:13:52 CEST
Hah, that looks "great" :)

But thanks for testing. I'll close this issue as it's fixed in 4.13 and we won't have time and energy to investigate a fix for 4.12 (it may be in the toolkit in the end).

Bug #13765

Reported by:
haarp
Reported on: 2017-08-06
Last modified on: 2017-08-22

People

Assignee:
Nick Schermer
CC List:
0 users

Version

Version:
4.13.0

Attachments

glyph rendered too large (5.29 KB, image/png)
2017-08-21 10:22 CEST , haarp
no flags

Additional information