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 613807 - Keyboard plugin crashes when showing current layout
Keyboard plugin crashes when showing current layout
Status: RESOLVED DUPLICATE of bug 612341
Product: gnome-settings-daemon
Classification: Core
Component: plugins
2.29.x
Other Linux
: Normal critical
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2010-03-24 14:03 UTC by Jan de Groot
Modified: 2010-03-28 12:15 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jan de Groot 2010-03-24 14:03:50 UTC
To reproduce:
- add two keyboard layouts in keyboard preferences. In my case, this is USA and USA International (with deadkeys)
- right-click the notification area thingy that shows up, click "Show Current Layout"
- watch gnome-settings-daemon crash

Additionally, when I restart gnome-settings-daemon after the crash, GNOME crashes back into gdm. I think that's a different bug though. I haven't found out the crashing application for that issue yet.

Some part of the backtrace:
  • #47 gtk_widget_show
    from /usr/lib/libgtk-x11-2.0.so.0
  • #48 popup_menu_show_layout
    from /usr/lib/gnome-settings-daemon-2.0/libkeyboard.so

I'll add some more useful backtrace information later, as I don't have debug symbols at hand at this moment.
Comment 1 Edward Hervey 2010-03-27 12:11:18 UTC
wouldn't this be the same issue as bug #613621 ?
Comment 2 Sergey V. Udaltsov 2010-03-27 12:32:09 UTC
Not sure. We need detailed backtrace.
Comment 3 Jan de Groot 2010-03-27 12:55:45 UTC
Some more information, glib, gtk+ and gnome-settings-daemon have been compiled with -O0 -g now:

[jan@laptop trunk]$ gdb `which gnome-settings-daemon`
GNU gdb (GDB) 7.1
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/gnome-settings-daemon...done.
(gdb) run --no-daemon
Starting program: /usr/bin/gnome-settings-daemon --no-daemon
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffeeb2d710 (LWP 24959)]
[1269694446,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application
dpy: 0x62d310
evt/error/major/minor: 96/156/1/0

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff69e08f8 in IA__g_object_ref (_object=0x8cd010) at gobject.c:2396
2396	  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
(gdb) bt
  • #0 IA__g_object_ref
    at gobject.c line 2396
  • #1 gtk_widget_set_style_internal
    at gtkwidget.c line 6887
  • #2 gtk_widget_reset_rc_style
    at gtkwidget.c line 6505
  • #3 IA__gtk_widget_ensure_style
    at gtkwidget.c line 6482
  • #4 do_size_request
    at gtksizegroup.c line 626
  • #5 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #6 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #7 gtk_box_size_request
    at gtkbox.c line 280
  • #8 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #9 g_type_class_meta_marshal
    at gclosure.c line 878
  • #10 IA__g_closure_invoke
    at gclosure.c line 767
  • #11 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #12 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #13 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #14 do_size_request
    at gtksizegroup.c line 628
  • #15 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #16 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #17 gtk_alignment_size_request
    at gtkalignment.c line 428
  • #18 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #19 g_type_class_meta_marshal
    at gclosure.c line 878
  • #20 IA__g_closure_invoke
    at gclosure.c line 767
  • #21 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #22 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #23 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #24 do_size_request
    at gtksizegroup.c line 628
  • #25 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #26 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #27 gtk_button_size_request
    at gtkbutton.c line 1368
  • #28 IA__g_cclosure_marshal_VOID__BOXED
  • #29 g_type_class_meta_marshal
    at gclosure.c line 878
  • #30 IA__g_closure_invoke
    at gclosure.c line 767
  • #31 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #32 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #33 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #34 do_size_request
    at gtksizegroup.c line 628
  • #35 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #36 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #37 _gtk_button_box_child_requisition
    at gtkbbox.c line 464
  • #38 gtk_button_box_size_request
    at gtkbbox.c line 523
  • #39 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #40 g_type_class_meta_marshal
    at gclosure.c line 878
  • #41 IA__g_closure_invoke
    at gclosure.c line 767
  • #42 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #43 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #44 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #45 do_size_request
    at gtksizegroup.c line 628
  • #46 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #47 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #48 gtk_box_size_request
    at gtkbox.c line 280
  • #49 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #50 g_type_class_meta_marshal
    at gclosure.c line 878
  • #51 IA__g_closure_invoke
    at gclosure.c line 767
  • #52 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #53 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #54 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #55 do_size_request
    at gtksizegroup.c line 628
  • #56 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #57 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #58 gtk_window_size_request
    at gtkwindow.c line 4953
  • #59 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #60 g_type_class_meta_marshal
    at gclosure.c line 878
  • #61 IA__g_closure_invoke
    at gclosure.c line 767
  • #62 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #63 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #64 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #65 do_size_request
    at gtksizegroup.c line 628
  • #66 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #67 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #68 gtk_window_compute_configure_request
    at gtkwindow.c line 5837
  • #69 gtk_window_show
    at gtkwindow.c line 4494
  • #70 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #71 g_type_class_meta_marshal
    at gclosure.c line 878
  • #72 IA__g_closure_invoke
    at gclosure.c line 767
  • #73 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #74 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #75 IA__g_signal_emit
    at gsignal.c line 3038
  • #76 IA__gtk_widget_show
    at gtkwidget.c line 3185
  • #77 gtk_container_show_all
    at gtkcontainer.c line 2600
  • #78 IA__gtk_widget_show_all
    at gtkwidget.c line 3333
  • #79 popup_menu_show_layout
    at gsd-keyboard-xkb.c line 351
  • #80 IA__g_cclosure_marshal_VOID__VOID
  • #81 IA__g_closure_invoke
    at gclosure.c line 767
  • #82 signal_emit_unlocked_R
    at gsignal.c line 3248
  • #83 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #84 IA__g_signal_emit
    at gsignal.c line 3038
  • #85 IA__gtk_widget_activate
    at gtkwidget.c line 4974
  • #86 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1256
  • #87 gtk_menu_shell_button_release
    at gtkmenushell.c line 683
  • #88 gtk_menu_button_release
    at gtkmenu.c line 3005
  • #89 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #90 g_type_class_meta_marshal
    at gclosure.c line 878
  • #91 IA__g_closure_invoke
    at gclosure.c line 767
  • #92 signal_emit_unlocked_R
    at gsignal.c line 3286
  • #93 IA__g_signal_emit_valist
    at gsignal.c line 2991
  • #94 IA__g_signal_emit
    at gsignal.c line 3038
  • #95 gtk_widget_event_internal
    at gtkwidget.c line 4943
  • #96 IA__gtk_widget_event
    at gtkwidget.c line 4740
  • #97 IA__gtk_propagate_event
    at gtkmain.c line 2442
  • #98 IA__gtk_main_do_event
    at gtkmain.c line 1647
  • #99 gdk_event_dispatch
    at gdkevents-x11.c line 2372
  • #100 g_main_dispatch
    at gmain.c line 1960
  • #101 IA__g_main_context_dispatch
    at gmain.c line 2513
  • #102 g_main_context_iterate
    at gmain.c line 2591
  • #103 IA__g_main_loop_run
    at gmain.c line 2799
  • #104 IA__gtk_main
    at gtkmain.c line 1219
  • #105 main
    at main.c line 502

Comment 4 Sergey V. Udaltsov 2010-03-27 13:07:20 UTC
I'd say it is different from #613621.

But still odd. What's the distro?
Comment 5 Jan de Groot 2010-03-27 13:11:42 UTC
Some more information about the packages used:
gnome-settings-daemon 2.29.92
glib 2.24.0
gtk+ 2.20.0

And another backtrace, using G_DEBUG=fatal-criticals:

  • #0 raise
    from /lib/libc.so.6
  • #1 abort
    from /lib/libc.so.6
  • #2 IA__g_logv
    at gmessages.c line 549
  • #3 IA__g_log
    at gmessages.c line 569
  • #4 IA__g_return_if_fail_warning
  • #5 IA__g_object_ref
    at gobject.c line 2396
  • #6 gtk_widget_set_style_internal
    at gtkwidget.c line 6887
  • #7 gtk_widget_reset_rc_style
    at gtkwidget.c line 6505
  • #8 IA__gtk_widget_ensure_style
    at gtkwidget.c line 6482
  • #9 do_size_request
    at gtksizegroup.c line 626
  • #10 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #11 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #12 gtk_box_size_request
    at gtkbox.c line 280
  • #13 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #14 g_type_class_meta_marshal
    at gclosure.c line 878
  • #15 IA__g_closure_invoke
    at gclosure.c line 767
  • #16 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #17 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #18 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #19 do_size_request
    at gtksizegroup.c line 628
  • #20 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #21 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #22 gtk_alignment_size_request
    at gtkalignment.c line 428
  • #23 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #24 g_type_class_meta_marshal
    at gclosure.c line 878
  • #25 IA__g_closure_invoke
    at gclosure.c line 767
  • #26 signal_emit_unlocked_R
  • #27 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #28 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #29 do_size_request
    at gtksizegroup.c line 628
  • #30 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #31 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #32 gtk_button_size_request
    at gtkbutton.c line 1368
  • #33 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #34 g_type_class_meta_marshal
    at gclosure.c line 878
  • #35 IA__g_closure_invoke
    at gclosure.c line 767
  • #36 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #37 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #38 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #39 do_size_request
    at gtksizegroup.c line 628
  • #40 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #41 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #42 _gtk_button_box_child_requisition
    at gtkbbox.c line 464
  • #43 gtk_button_box_size_request
    at gtkbbox.c line 523
  • #44 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #45 g_type_class_meta_marshal
    at gclosure.c line 878
  • #46 IA__g_closure_invoke
    at gclosure.c line 767
  • #47 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #48 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #49 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #50 do_size_request
    at gtksizegroup.c line 628
  • #51 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #52 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #53 gtk_box_size_request
    at gtkbox.c line 280
  • #54 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #55 g_type_class_meta_marshal
    at gclosure.c line 878
  • #56 IA__g_closure_invoke
    at gclosure.c line 767
  • #57 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #58 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #59 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #60 do_size_request
    at gtksizegroup.c line 628
  • #61 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #62 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #63 gtk_window_size_request
    at gtkwindow.c line 4953
  • #64 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #65 g_type_class_meta_marshal
    at gclosure.c line 878
  • #66 IA__g_closure_invoke
    at gclosure.c line 767
  • #67 signal_emit_unlocked_R
    at gsignal.c line 3178
  • #68 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #69 IA__g_signal_emit_by_name
    at gsignal.c line 3075
  • #70 do_size_request
    at gtksizegroup.c line 628
  • #71 _gtk_size_group_compute_requisition
    at gtksizegroup.c line 828
  • #72 IA__gtk_widget_size_request
    at gtkwidget.c line 3878
  • #73 gtk_window_compute_configure_request
    at gtkwindow.c line 5837
  • #74 gtk_window_show
    at gtkwindow.c line 4494
  • #75 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #76 g_type_class_meta_marshal
    at gclosure.c line 878
  • #77 IA__g_closure_invoke
    at gclosure.c line 767
  • #78 signal_emit_unlocked_R
  • #79 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #80 IA__g_signal_emit
    at gsignal.c line 3038
  • #81 IA__gtk_widget_show
    at gtkwidget.c line 3185
  • #82 gtk_container_show_all
    at gtkcontainer.c line 2600
  • #83 IA__gtk_widget_show_all
    at gtkwidget.c line 3333
  • #84 popup_menu_show_layout
    at gsd-keyboard-xkb.c line 351
  • #85 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #86 IA__g_closure_invoke
    at gclosure.c line 767
  • #87 signal_emit_unlocked_R
    at gsignal.c line 3248
  • #88 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #89 IA__g_signal_emit
    at gsignal.c line 3038
  • #90 IA__gtk_widget_activate
    at gtkwidget.c line 4974
  • #91 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1256
  • #92 gtk_menu_shell_button_release
    at gtkmenushell.c line 683
  • #93 gtk_menu_button_release
    at gtkmenu.c line 3005
  • #94 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #95 g_type_class_meta_marshal
    at gclosure.c line 878
  • #96 IA__g_closure_invoke
    at gclosure.c line 767
  • #97 signal_emit_unlocked_R
    at gsignal.c line 3286
  • #98 IA__g_signal_emit_valist
    at gsignal.c line 2991
  • #99 IA__g_signal_emit
    at gsignal.c line 3038
  • #100 gtk_widget_event_internal
    at gtkwidget.c line 4943
  • #101 IA__gtk_widget_event
    at gtkwidget.c line 4740
  • #102 IA__gtk_propagate_event
    at gtkmain.c line 2442
  • #103 IA__gtk_main_do_event
    at gtkmain.c line 1647
  • #104 gdk_event_dispatch
    at gdkevents-x11.c line 2372
  • #105 g_main_dispatch
    at gmain.c line 1960
  • #106 IA__g_main_context_dispatch
    at gmain.c line 2513
  • #107 g_main_context_iterate
    at gmain.c line 2591
  • #108 IA__g_main_loop_run
    at gmain.c line 2799
  • #109 IA__gtk_main
    at gtkmain.c line 1219
  • #110 main
    at main.c line 502

Comment 6 Jan de Groot 2010-03-27 13:12:44 UTC
Distribution is Archlinux, using the gnome-unstable repository. I'm the GNOME maintainer of this distribution, so if you need anything, just ask. I'll be happy to provide all the information you need.
Comment 7 Sergey V. Udaltsov 2010-03-28 08:24:02 UTC
What I'd try is commenting out the actual drawing widget from the code.
Also, could you double-check that show-layout.ui is installed properly?
Comment 8 Jan de Groot 2010-03-28 12:15:37 UTC
This was caused by a bug in libgnomekbd. After applying the patch from bug 612341 to libgnomekbd, I can't reproduce t he crashes anymore.

*** This bug has been marked as a duplicate of bug 612341 ***