Bug 917292 - plugin crashes when changing layout just after adding a new one
Summary: plugin crashes when changing layout just after adding a new one
Keywords:
Status: CLOSED DUPLICATE of bug 965831
Alias: None
Product: Fedora
Classification: Fedora
Component: xfce4-xkb-plugin
Version: 18
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Christoph Wickert
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-03-02 18:37 UTC by Cristian Ciupitu
Modified: 2013-06-26 17:02 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-06-24 22:06:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Cristian Ciupitu 2013-03-02 18:37:43 UTC
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.

Comment 1 Cristian Ciupitu 2013-03-02 18:59:21 UTC
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 2 Christoph Wickert 2013-05-18 19:03:32 UTC
I think this is a duplicate of one of the ABTR bugs. Please try the latest update from https://admin.fedoraproject.org/updates/xfce4-xkb-plugin-0.5.5-1.fc18

Comment 3 Christoph Wickert 2013-06-05 17:37:19 UTC
Please tell me if you still see this crash with 0.5.5-1.

Comment 4 Cristian Ciupitu 2013-06-11 21:50:08 UTC
It doesn't crash anymore.

Just for the record I'm experiencing another problem, the layout changes without any reason after a random short period of time (a couple of minutes). Though this should be another bug report.

Comment 5 Christoph Wickert 2013-06-24 22:06:50 UTC
Both issues (the initial crash and the frequent change of layouts) are fixed in 0.5.6, stay tuned for the update.

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

Comment 6 Cristian Ciupitu 2013-06-26 17:02:01 UTC
What's with the needinfo flag? By the way I haven't encountered any issues with xfce4-xkb-plugin-0.5.6-1.fc18.x86_64.


Note You need to log in before you can comment on or make changes to this bug.