! 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 !
plugin crashes when changing layout just after adding a new one
Status:
RESOLVED: FIXED
Product:
Xfce4-xkb-plugin
Component:
General

Comments

Description Cristian Ciupitu 2013-03-02 20:03:57 CET
Copy & paste from https://bugzilla.redhat.com/show_bug.cgi?id=917292

Description of problem:
The plugin crashes when I add a new layout and switch to it before
exiting the configuration dialog. 

Version-Release number of selected component (if applicable):
xfce4-xkb-plugin-0.5.4.3-2.fc18.x86_64

How reproducible:
Every time

Steps to Reproduce:
1. Login to XFCE.
2. Add the keyboard plugin to the panel.
3. Configure the plugin like this:
   - change layout option: Shift+Caps Lock
   - keyboard layouts:
     - US
     - Romanian (standard)
     - Romanian
   - show layout as: text
   - manage layout: globally
3. Close the configuration dialog.
4. The plugin will work just fine. Switch to the 3rd layout.
5. Configure the plugin again and add the "Italian" keyboard layout, but
   don't close the configuration dialog ("Keyboard Layouts") yet.
6. Change the layout by pressing Shift+Caps Lock

Actual results:
The plugin crashes

Expected results:
No crash

Additional info:
I'd love to attach a backtrace, but ABRT doesn't seem to work to well
today; I think the server is too slow.

In the mean time I've installed some debuginfo packages and attached gdb to the running process:

(gdb) backtrace 
#0  __strlen_sse2_pminub () at ../sysdeps/x86_64/multiarch/strlen-sse2-pminub.S:38
#1  0x000000000040be97 in xkb_util_normalize_group_name (
    group_name=group_name@entry=0x21 <Address 0x21 out of bounds>) at xkb-util.c:78
#2  0x000000000040bf86 in xkb_cairo_draw_label (cr=cr@entry=0x1b29880, 
    group_name=group_name@entry=0x21 <Address 0x21 out of bounds>, panel_size=24, 
    actual_width=actual_width@entry=31, actual_height=actual_height@entry=24, 
    width=<optimized out>, height=24, 
    variant_markers_count=variant_markers_count@entry=0, textsize=0, fgcolor=...)
    at xkb-cairo.c:155
#3  0x000000000040c753 in xkb_plugin_layout_image_exposed (widget=widget@entry=0x1b20030, 
    event=<optimized out>, xkb=xkb@entry=0x1b15be0) at xkb-callbacks.c:129
#4  0x0000003d45d4dfac in _gtk_marshal_BOOLEAN__BOXED (closure=0x1b1fa00, 
    return_value=0x7fff1dcab260, n_param_values=<optimized out>, 
    param_values=0x7fff1dcab310, invocation_hint=<optimized out>, 
    marshal_data=<optimized out>) at gtkmarshalers.c:86
#5  0x0000003414a0f910 in g_closure_invoke (closure=0x1b1fa00, 
    return_value=return_value@entry=0x7fff1dcab260, n_param_values=2, 
    param_values=param_values@entry=0x7fff1dcab310, 
    invocation_hint=invocation_hint@entry=0x7fff1dcab2b0) at gclosure.c:777
#6  0x0000003414a20d08 in signal_emit_unlocked_R (node=node@entry=0x1ad2740, 
    detail=detail@entry=0, instance=instance@entry=0x1b20030, 
    emission_return=emission_return@entry=0x7fff1dcab3e0, 
    instance_and_params=instance_and_params@entry=0x7fff1dcab310) at gsignal.c:3551
#7  0x0000003414a288c7 in g_signal_emit_valist (instance=0x1b20030, 
    signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fff1dcab568)
---Type <return> to continue, or q <return> to quit---
    at gsignal.c:3310
#8  0x0000003414a28de2 in g_signal_emit (instance=instance@entry=0x1b20030, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3356
#9  0x0000003d45e81b5e in gtk_widget_event_internal (widget=widget@entry=0x1b20030, 
    event=event@entry=0x1d3ae70) at gtkwidget.c:5017
#10 0x0000003d45e81e21 in IA__gtk_widget_send_expose (widget=widget@entry=0x1b20030, 
    event=event@entry=0x1d3ae70) at gtkwidget.c:4846
#11 0x0000003d45cc28f8 in IA__gtk_container_propagate_expose (container=<optimized out>, 
    child=0x1b20030, event=0x1cb8a00) at gtkcontainer.c:2757
#12 0x0000003d45cc12bf in gtk_container_expose (widget=0x1b1a840, event=0x1cb8a00)
    at gtkcontainer.c:2661
#13 0x0000003d45c90405 in gtk_button_expose (event=0x1cb8a00, widget=0x1b1a840)
    at gtkbutton.c:1582
#14 gtk_button_expose (widget=widget@entry=0x1b1a840, event=0x1cb8a00) at gtkbutton.c:1570
#15 0x0000003d45d4dfac in _gtk_marshal_BOOLEAN__BOXED (closure=0x1ad26f0, 
    return_value=0x7fff1dcab870, n_param_values=<optimized out>, 
    param_values=0x7fff1dcab920, invocation_hint=<optimized out>, 
    marshal_data=<optimized out>) at gtkmarshalers.c:86
#16 0x0000003414a0f84e in g_closure_invoke (closure=closure@entry=0x1ad26f0, 
    return_value=return_value@entry=0x7fff1dcab870, n_param_values=2, 
    param_values=param_values@entry=0x7fff1dcab920, 
    invocation_hint=invocation_hint@entry=0x7fff1dcab8c0) at gclosure.c:777
#17 0x0000003414a20a80 in signal_emit_unlocked_R (node=node@entry=0x1ad2740, 
    detail=detail@entry=0, instance=instance@entry=0x1b1a840, 
    emission_return=emission_return@entry=0x7fff1dcab9f0, 
---Type <return> to continue, or q <return> to quit---
    instance_and_params=instance_and_params@entry=0x7fff1dcab920) at gsignal.c:3589
#18 0x0000003414a288c7 in g_signal_emit_valist (instance=0x1b1a840, 
    signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fff1dcabb78)
    at gsignal.c:3310
#19 0x0000003414a28de2 in g_signal_emit (instance=instance@entry=0x1b1a840, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3356
#20 0x0000003d45e81b5e in gtk_widget_event_internal (widget=widget@entry=0x1b1a840, 
    event=event@entry=0x1cb8a00) at gtkwidget.c:5017
#21 0x0000003d45e81e21 in IA__gtk_widget_send_expose (widget=widget@entry=0x1b1a840, 
    event=event@entry=0x1cb8a00) at gtkwidget.c:4846
#22 0x0000003d45cc28f8 in IA__gtk_container_propagate_expose (container=<optimized out>, 
    child=0x1b1a840, event=0x1cb88b0) at gtkcontainer.c:2757
#23 0x0000003d45cc12bf in gtk_container_expose (widget=0x1b12050, event=0x1cb88b0)
    at gtkcontainer.c:2661
#24 0x0000003d45cdaf8c in gtk_event_box_expose (event=0x1cb88b0, widget=0x1b12050)
    at gtkeventbox.c:568
#25 gtk_event_box_expose (widget=widget@entry=0x1b12050, event=0x1cb88b0)
    at gtkeventbox.c:560
#26 0x0000003d45d4dfac in _gtk_marshal_BOOLEAN__BOXED (closure=0x1ad26f0, 
    return_value=0x7fff1dcabea0, n_param_values=<optimized out>, 
    param_values=0x7fff1dcabf50, invocation_hint=<optimized out>, 
    marshal_data=<optimized out>) at gtkmarshalers.c:86
#27 0x0000003414a0f84e in g_closure_invoke (closure=closure@entry=0x1ad26f0, 
    return_value=return_value@entry=0x7fff1dcabea0, n_param_values=2, 
    param_values=param_values@entry=0x7fff1dcabf50, 
---Type <return> to continue, or q <return> to quit---
    invocation_hint=invocation_hint@entry=0x7fff1dcabef0) at gclosure.c:777
#28 0x0000003414a20a80 in signal_emit_unlocked_R (node=node@entry=0x1ad2740, 
    detail=detail@entry=0, instance=instance@entry=0x1b12050, 
    emission_return=emission_return@entry=0x7fff1dcac020, 
    instance_and_params=instance_and_params@entry=0x7fff1dcabf50) at gsignal.c:3589
#29 0x0000003414a288c7 in g_signal_emit_valist (instance=0x1b12050, 
    signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fff1dcac1a8)
    at gsignal.c:3310
#30 0x0000003414a28de2 in g_signal_emit (instance=instance@entry=0x1b12050, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3356
#31 0x0000003d45e81b5e in gtk_widget_event_internal (widget=widget@entry=0x1b12050, 
    event=event@entry=0x1cb88b0) at gtkwidget.c:5017
#32 0x0000003d45e81e21 in IA__gtk_widget_send_expose (widget=widget@entry=0x1b12050, 
    event=event@entry=0x1cb88b0) at gtkwidget.c:4846
#33 0x0000003d45cc28f8 in IA__gtk_container_propagate_expose (container=<optimized out>, 
    child=0x1b12050, event=0x7fff1dcac920) at gtkcontainer.c:2757
#34 0x0000003d45cc12bf in gtk_container_expose (widget=0x1adf0a0, event=0x7fff1dcac920)
    at gtkcontainer.c:2661
#35 0x0000003d45d4dfac in _gtk_marshal_BOOLEAN__BOXED (closure=0x1ad26f0, 
    return_value=0x7fff1dcac480, n_param_values=<optimized out>, 
    param_values=0x7fff1dcac530, invocation_hint=<optimized out>, 
    marshal_data=<optimized out>) at gtkmarshalers.c:86
#36 0x0000003414a0f910 in g_closure_invoke (closure=closure@entry=0x1ad26f0, 
    return_value=return_value@entry=0x7fff1dcac480, n_param_values=2, 
    param_values=param_values@entry=0x7fff1dcac530, 
---Type <return> to continue, or q <return> to quit---
    invocation_hint=invocation_hint@entry=0x7fff1dcac4d0) at gclosure.c:777
#37 0x0000003414a20a80 in signal_emit_unlocked_R (node=node@entry=0x1ad2740, 
    detail=detail@entry=0, instance=instance@entry=0x1adf0a0, 
    emission_return=emission_return@entry=0x7fff1dcac600, 
    instance_and_params=instance_and_params@entry=0x7fff1dcac530) at gsignal.c:3589
#38 0x0000003414a288c7 in g_signal_emit_valist (instance=0x1adf0a0, 
    signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fff1dcac788)
    at gsignal.c:3310
#39 0x0000003414a28de2 in g_signal_emit (instance=instance@entry=0x1adf0a0, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3356
#40 0x0000003d45e81b5e in gtk_widget_event_internal (widget=widget@entry=0x1adf0a0, 
    event=event@entry=0x7fff1dcac920) at gtkwidget.c:5017
#41 0x0000003d45e81e21 in IA__gtk_widget_send_expose (widget=widget@entry=0x1adf0a0, 
    event=event@entry=0x7fff1dcac920) at gtkwidget.c:4846
#42 0x0000003d45d4c3f0 in IA__gtk_main_do_event (event=0x7fff1dcac920) at gtkmain.c:1610
#43 0x0000003d4684552c in _gdk_window_process_updates_recurse (
    window=window@entry=0x1aca480, expose_region=expose_region@entry=0x7fe8f4007990)
    at gdkwindow.c:5429
#44 0x0000003d4687d555 in _gdk_windowing_window_process_updates_recurse (
    window=window@entry=0x1aca480, region=region@entry=0x7fe8f4007990)
    at gdkwindow-x11.c:5643
#45 0x0000003d468400a7 in gdk_window_process_updates_internal (window=0x1aca480)
    at gdkwindow.c:5588
#46 0x0000003d46842428 in IA__gdk_window_process_all_updates () at gdkwindow.c:5696
#47 0x0000003d46842489 in gdk_window_update_idle (data=<optimized out>)
---Type <return> to continue, or q <return> to quit---
    at gdkwindow.c:5322
#48 0x0000003d4681ebb7 in gdk_threads_dispatch (data=0x1c41f40) at gdk.c:512
#49 0x0000003414247a55 in g_main_dispatch (context=0x1accd30) at gmain.c:2715
#50 g_main_context_dispatch (context=context@entry=0x1accd30) at gmain.c:3219
#51 0x0000003414247d88 in g_main_context_iterate (context=0x1accd30, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3290
#52 0x0000003414248182 in g_main_loop_run (loop=0x1b32880) at gmain.c:3484
#53 0x0000003d45d4b077 in IA__gtk_main () at gtkmain.c:1257
#54 0x0000000000407270 in main (argc=8, argv=0x7fff1dcacd18) at xfce4-xkb-plugin.c:85
Comment 1 Igor Slepchin editbugs 2013-10-02 00:28:32 CEST
This seems to be fixed in 0.5.6.

Bug #9884

Reported by:
Cristian Ciupitu
Reported on: 2013-03-02
Last modified on: 2013-10-02

People

Assignee:
Azamat H. Hackimov
CC List:
1 user

Version

Version:
0.5.4.3

Attachments

Additional information