After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 617375 - gnome-settings-daemon crashed with SIGSEGV in *INT_cairo_move_to()
gnome-settings-daemon crashed with SIGSEGV in *INT_cairo_move_to()
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: general
2.30.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2010-05-01 14:54 UTC by Ilya Zakreuski
Modified: 2010-06-15 20:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Output of `xkbcomp :0 -xkb out.xkb` (56.96 KB, text/plain)
2010-05-14 13:20 UTC, Vasilis Vasaitis
Details

Description Ilya Zakreuski 2010-05-01 14:54:10 UTC
Greetings.

It's on Ubuntu 10.04, gnome-settings-daemon 2.30.0.

How to reproduce: When having several keyboard layouts configured,
right click on a Keyboard Layout applet in notification area, choose
menu entry "Show Current Layout".

It works OK for US layout, but crashes gnome-settings-daemon for other
layouts. Affected layouts I've tried so far: US Dvorak, UK Dvorak,
Russian.

Stacktrace:
 #0  *INT_cairo_move_to (cr=0x0, x=644, y=58) at /build/buildd/cairo-1.8.10/src/cairo.c:1391
         status = <value optimized out>
 #1  0x03d4974b in ?? () from /usr/lib/libgnomekbdui.so.4
 No symbol table info available.
 #2  0x03d49b03 in ?? () from /usr/lib/libgnomekbdui.so.4
 No symbol table info available.
 #3  0x03d4aa61 in ?? () from /usr/lib/libgnomekbdui.so.4
 No symbol table info available.
 #4  0x03d4c1b5 in ?? () from /usr/lib/libgnomekbdui.so.4
 No symbol table info available.
 #5  0x008920b3 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
 No symbol table info available.
 #6  0x00893ed1 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
 No symbol table info available.
 #7  0x0089432f in ?? () from /usr/lib/libgdk-x11-2.0.so.0
 No symbol table info available.
 #8  0x001825e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #9  0x001862d8 in ?? () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #10 0x00186817 in g_main_loop_run () from /lib/libglib-2.0.so.0
 No symbol table info available.
 #11 0x0054c299 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
 No symbol table info available.
 #12 0x0804bd33 in main ()
 No symbol table info available.

Looks like there are no debug packages for libgnomekbd. Please let me
know if some additional information could be helpful.

Original report and some more info could be found here:
https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/554598

--
Ilya Zakreuski
Comment 1 Jens Granseuer 2010-05-01 18:30:14 UTC
Adding Sergey...
Comment 2 Sergey V. Udaltsov 2010-05-01 23:07:39 UTC
Ilya, could you please try gkbd-keyboard-drawing-test from libgnomekbd/test?
Comment 3 Ilya Zakreuski 2010-05-02 09:28:57 UTC
(In reply to comment #2)
> Ilya, could you please try gkbd-keyboard-drawing-test from libgnomekbd/test?

Sergey,

I've fetched libgnomekbd source package, built the source and ran
gkbd-keyboard-drawing-test:

,----
| zail@debbie:~/devel/debian/libgnomekbd-2.30.0/test  
| $ ./gkbd-keyboard-drawing-test 
| dpy: 0x82f3970
| evt/error/major/minor: 97/153/1/0
`----

It worked just fine, layout preview without any key labels appeared,
indicating any keys which I've pressed:
http://imagebin.ca/view/YfyfJXk.html

Should I pass any additional options to gkbd-keyboard-drawing-test?

--
Ilya Zakreuski
Comment 4 Sergey V. Udaltsov 2010-05-02 12:49:46 UTC
gkbd-keyboard-drawing-test --groups=1,2,1,2 --levels=1,1,2,2
Comment 5 Ilya Zakreuski 2010-05-02 14:42:27 UTC
(In reply to comment #4)
> gkbd-keyboard-drawing-test --groups=1,2,1,2 --levels=1,1,2,2

Sergey,

that worked fine, Russian layout preview appeared. Some console output:

,----
| zail@debbie:~/devel/debian/libgnomekbd-2.30.0/test  
| $ ./gkbd-keyboard-drawing-test --groups=1,2,1,2 --levels=1,1,2,2
| dpy: 0x87869a8
| evt/error/major/minor: 97/153/1/0
`----

--
Ilya Zakreuski
Comment 6 Sergey V. Udaltsov 2010-05-02 22:25:27 UTC
Would the bug be still reproducable if you replace libgnomekbd with the one you built? Or the other way around - copy gkbd-keyboard-drawing-test to some other location an make it use system's libgnomekbd.
Comment 7 Vasilis Vasaitis 2010-05-13 16:18:10 UTC
I can confirm this with my us/el setup on Debian unstable. I rebuilt the libgnomekbd4 package with debug symbols, and when I follow the steps described by the submitter I get a crash with the following backtrace:

  • #0 cairo_move_to
    from /usr/lib/libcairo.so.2
  • #1 curve_rectangle
    at gkbd-keyboard-drawing.c line 342
  • #2 draw_curve_rectangle
    at gkbd-keyboard-drawing.c line 362
  • #3 draw_rectangle
    at gkbd-keyboard-drawing.c line 398
  • #4 draw_outline
    at gkbd-keyboard-drawing.c line 438
  • #5 draw_indicator_doodad
    at gkbd-keyboard-drawing.c line 1158
  • #6 draw_doodad
    at gkbd-keyboard-drawing.c line 1217
  • #7 xkb_state_notify_event_filter
    at gkbd-keyboard-drawing.c line 1912
  • #8 gdk_event_apply_filters
    at /tmp/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c line 351
  • #9 gdk_event_translate
    at /tmp/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c line 922
  • #10 _gdk_events_queue
    at /tmp/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c line 2305
  • #11 gdk_event_dispatch
    at /tmp/buildd/gtk+2.0-2.20.1/gdk/x11/gdkevents-x11.c line 2366
  • #12 g_main_dispatch
    at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c line 1960
  • #13 IA__g_main_context_dispatch
    at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c line 2513
  • #14 g_main_context_iterate
    at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c line 2591
  • #15 IA__g_main_loop_run
    at /tmp/buildd/glib2.0-2.24.1/glib/gmain.c line 2799
  • #16 IA__gtk_main
    at /tmp/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c line 1219
  • #17 main

Any more information I can provide, I'll be happy to help.

Thanks,
Vasilis
Comment 8 Sergey V. Udaltsov 2010-05-13 18:04:00 UTC
Vasilis, did you use the exact command line

gkbd-keyboard-drawing-test --groups=1,2,1,2 --levels=1,1,2,2

? 

Could you please provide xprop -root | grep XKB?

Did you use libgnomekbd from git?

What's the version of xkeyboard-config (or xkbdata)?
Comment 9 Vasilis Vasaitis 2010-05-13 18:20:08 UTC
Oh no, sorry for not being clear enough, I reproduced it using the original description:

> How to reproduce: When having several keyboard layouts configured,
> right click on a Keyboard Layout applet in notification area, choose
> menu entry "Show Current Layout".

> It works OK for US layout, but crashes gnome-settings-daemon for other
> layouts. Affected layouts I've tried so far: US Dvorak, UK Dvorak,
> Russian.

gkbd-keyboard-drawing-test, OTOH, appears to work fine (with the command line you specify). I.e., it displays the layout correctly and does not crash.

`xprop -root | grep XKB` says:

_XKB_RULES_NAMES_BACKUP(STRING) = "evdev", "a4techKB21", "us,el", ",extended", "grp:menu_toggle,grp_led:scroll,lv3:ralt_switch,compose:rwin,grp:menu_toggle,lv3:ralt_switch,grp_led:scroll"
_XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us,gr", ",extended", "grp:menu_toggle,compose:rwin,lv3:ralt_switch,grp_led:scroll"

And finally, I'm testing with the libgnomekbd that comes with Debian unstable (2.30.1-2), while xkb-data is at version 1.8-1.
Comment 10 Sergey V. Udaltsov 2010-05-13 21:23:24 UTC
> I.e., it displays the layout correctly and does not crash.
I hate that!

Also, why does your system config (_BACKUP) contain all options doubled?

I checked your config - no crashes for me:(

Just in case, could you attach the output of xkbcomp :0 -xkb out.xkb?
Comment 11 Vasilis Vasaitis 2010-05-14 13:20:19 UTC
Created attachment 161054 [details]
Output of `xkbcomp :0 -xkb out.xkb`

> Also, why does your system config (_BACKUP) contain all options doubled?

Not a clue.

> Just in case, could you attach the output of xkbcomp :0 -xkb out.xkb?

Attaching...
Comment 12 Sergey V. Udaltsov 2010-05-14 20:21:47 UTC
Just tried your config. Everything seems fine. No crash:(
Comment 13 Sergey V. Udaltsov 2010-05-14 20:24:18 UTC
Next thing  we could try is adding loads xkb_debug statements to libgnomekbd, building it, running g-s-d with it - and seeing where it crashes. Vasilis, are you up to such excersize?
Comment 14 Vasilis Vasaitis 2010-05-14 22:37:27 UTC
Sure, if you give me a diff or some other kind of instructions on what to add where, I'll be happy to apply it and see what happens.
Comment 15 Sergey V. Udaltsov 2010-05-15 18:08:27 UTC
I will try to organize instructions. At the mean while, could you please try the patch from bug #618709? Would it fix the issue for you?
Comment 16 Sergey V. Udaltsov 2010-05-15 20:49:03 UTC
In #618709, there is attempt to fix the issue. Vasilis, could you please try the version from git as well?
Comment 17 Vasilis Vasaitis 2010-06-15 14:06:46 UTC
Sorry for the delay. Indeed, the commit linked to from #618709 fixes the problem for me.