gnome-control-center crashes after closing the input chooser dialog and switching panel
To reproduce:
- Open gnome-control-center
- Go to "Region & Language" panel
- Click the "+" to add "Input Sources"
- Make sure the input sources dialog is displayed
- Close the dialog
- Change panel (e.g. go to Wifi)
Expected result: You can switch to wathever panel you want.
Actual results: gnome-control-center crashes.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
set = {__val = {0, 94672247002768, 35, 4, 4, 140229767261948, 0, 140229768272711, 140722455969793, 94672238948128, 94672247002768, 140724089594480, 140229768524288, 140229768410592, 140724089594480, 94672211680464}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
#1 0x00007f89c66d2535 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x561a998cb610, sa_sigaction = 0x561a998cb610}, sa_mask = {__val = {140229767458020, 94672245274128, 94672245274128, 94672214536816, 94672245168496, 140229768524288, 140229768394887, 63, 127, 94672245168400, 140229767453444, 94672245168400, 94672245168480, 94672214287168, 140724089594496, 140724089594752}}, sa_flags = 1, sa_restorer = 0x1000}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007f89c6739516 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f89c685dc00 "%s\n") at ../sysdeps/posix/libc_fatal.c:181
ap = {{gp_offset = 24, fp_offset = 32649, overflow_arg_area = 0x7ffce15f2390, reg_save_area = 0x7ffce15f2320}}
fd = 2
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
written = <optimized out>
on_2 = <optimized out>
next = <optimized out>
str = <optimized out>
len = <optimized out>
newp = <optimized out>
iov = <optimized out>
total = <optimized out>
cnt = <optimized out>
buf = <optimized out>
wp = <optimized out>
old = <optimized out>
cnt = <optimized out>
result = <optimized out>
#3 0x00007f89c67403aa in malloc_printerr (str=str@entry=0x7f89c685f8c8 "double free or corruption (fasttop)") at malloc.c:5336
No locals.
#4 0x00007f89c67423cc in _int_free (av=0x7f89c6894c40 <main_arena>, p=0x561a99a2cb70, have_lock=<optimized out>) at malloc.c:4216
idx = 0
old = <optimized out>
old2 = <optimized out>
size = <optimized out>
fb = 0x7f89c6894c50 <main_arena+16>
nextchunk = <optimized out>
nextsize = <optimized out>
nextinuse = <optimized out>
prevsize = <optimized out>
bck = <optimized out>
fwd = <optimized out>
__PRETTY_FUNCTION__ = "_int_free"
#5 0x0000561a9624c75c in locale_info_free (data=0x561a99dde5e0) at ../panels/region/cc-input-chooser.c:94
info = 0x561a99dde5e0
#6 0x00007f89c976e54f in g_hash_table_remove_all_nodes (hash_table=hash_table@entry=0x561a999d7b60, notify=notify@entry=1, destruction=destruction@entry=0) at ../../../../glib/ghash.c:552
i = 19
key = <optimized out>
value = <optimized out>
old_size = <optimized out>
old_keys = 0x561a99a0b6d0
old_values = 0x561a999a6a10
old_hashes = 0x561a999a6b20
#7 0x00007f89c976f6a8 in g_hash_table_remove_all_nodes (destruction=0, notify=1, hash_table=0x561a999d7b60) at ../../../../glib/ghash.c:1508
i = <optimized out>
key = <optimized out>
value = <optimized out>
old_keys = <optimized out>
old_values = <optimized out>
old_hashes = <optimized out>
old_size = <optimized out>
i = <optimized out>
key = <optimized out>
value = <optimized out>
old_size = <optimized out>
old_keys = <optimized out>
old_values = <optimized out>
old_hashes = <optimized out>
__n = <optimized out>
__s = <optimized out>
__p = <optimized out>
__n = <optimized out>
__s = <optimized out>
__p = <optimized out>
#8 g_hash_table_remove_all (hash_table=0x561a999d7b60) at ../../../../glib/ghash.c:1508
__func__ = "g_hash_table_remove_all"
_g_boolean_var_ = <optimized out>
#9 0x00007f89c976f6ee in g_hash_table_destroy (hash_table=0x561a999d7b60) at ../../../../glib/ghash.c:1128
__func__ = "g_hash_table_destroy"
#10 0x0000561a9624c7ff in cc_input_chooser_private_free (data=0x561a99acc030) at ../panels/region/cc-input-chooser.c:976
priv = 0x561a99acc030
#11 0x00007f89c9762aab in g_datalist_clear (datalist=<optimized out>) at ../../../../glib/gdataset.c:273
data = 0x561a99cb49e0
i = 0
__func__ = "g_datalist_clear"
#12 0x00007f89c9865c82 in g_object_unref (_object=0x561a99518e30) at ../../../../gobject/gobject.c:3346
weak_locations = <optimized out>
object = <optimized out>
old_ref = 1
_object = <optimized out>
__func__ = "g_object_unref"
has_toggle_ref = <optimized out>
weak_locations = <optimized out>
weak_ref_location = <optimized out>
has_toggle_ref = <optimized out>
object = <optimized out>
old_ref = <optimized out>
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
object = 0x561a99518e30
old_ref = <optimized out>
__func__ = "g_object_unref"
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
has_toggle_ref = <optimized out>
weak_locations = <optimized out>
weak_ref_location = <optimized out>
has_toggle_ref = <optimized out>
_g_boolean_var_ = <optimized out>
#13 0x00007f89c9762aab in g_datalist_clear (datalist=<optimized out>) at ../../../../glib/gdataset.c:273
data = 0x561a99b93ef0
i = 0
__func__ = "g_datalist_clear"
#14 0x00007f89c9865c82 in g_object_unref (_object=0x561a97a2c540) at ../../../../gobject/gobject.c:3346
weak_locations = <optimized out>
object = <optimized out>
old_ref = 1
_object = <optimized out>
__func__ = "g_object_unref"
has_toggle_ref = <optimized out>
weak_locations = <optimized out>
weak_ref_location = <optimized out>
has_toggle_ref = <optimized out>
object = <optimized out>
old_ref = <optimized out>
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
object = 0x561a97a2c540
old_ref = <optimized out>
__func__ = "g_object_unref"
_g_boolean_var_ = <optimized out>
_g_boolean_var_ = <optimized out>
has_toggle_ref = <optimized out>
weak_locations = <optimized out>
weak_ref_location = <optimized out>
has_toggle_ref = <optimized out>
_g_boolean_var_ = <optimized out>
#15 0x00007f89c92cf3e0 in gtk_stack_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7f89c936f9c0 <gtk_widget_destroy>, callback_data=0x0) at ../../../../gtk/gtkstack.c:1911
stack = <optimized out>
priv = <optimized out>
child_info = <optimized out>
l = 0x0
#16 0x00007f89c9163d76 in gtk_container_destroy (widget=0x561a992ec230) at ../../../../gtk/gtkcontainer.c:1700
container = 0x561a992ec230
priv = 0x561a992ec120
#17 0x00007f89c9860a81 in g_closure_invoke (closure=0x561a97894db0, return_value=0x0, n_param_values=1, param_values=0x7ffce15f2740, invocation_hint=0x7ffce15f26c0) at ../../../../gobject/gclosure.c:810
marshal = 0x7f89c985f060 <g_type_class_meta_marshal>
marshal_data = 0x98
in_marshal = 1
real_closure = 0x561a97894d90
__func__ = "g_closure_invoke"
#18 0x00007f89c9873c4a in signal_emit_unlocked_R (node=node@entry=0x561a978c1cd0, detail=detail@entry=0, instance=instance@entry=0x561a992ec230, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce15f2740) at ../../../../gobject/gsignal.c:3549
need_unset = 0
accumulator = 0x0
emission = {next = 0x7ffce15f2b80, instance = 0x561a992ec230, ihint = {signal_id = 35, detail = 0, run_type = G_SIGNAL_RUN_CLEANUP}, state = EMISSION_STOP, chain_type = 94672212691472}
class_closure = 0x561a97894db0
hlist = <optimized out>
handler_list = 0x0
return_accu = 0x0
accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 35
max_sequential_handler_number = 14117
return_value_altered = <optimized out>
#19 0x00007f89c987c882 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce15f28f0) at ../../../../gobject/gsignal.c:3391
instance_and_params = 0x7ffce15f2740
signal_return_type = <optimized out>
param_values = 0x7ffce15f2758
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#20 0x00007f89c987cecf in g_signal_emit (instance=instance@entry=0x561a992ec230, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffce15f29d0, reg_save_area = 0x7ffce15f2910}}
#21 0x00007f89c9377f7c in gtk_widget_dispose (object=0x561a992ec230) at ../../../../gtk/gtkwidget.c:12098
widget = 0x561a992ec230
priv = 0x561a992ec140
sizegroups = <optimized out>
#22 0x00007f89c9867448 in g_object_run_dispose (object=0x561a992ec230) at ../../../../gobject/gobject.c:1108
__func__ = "g_object_run_dispose"
#23 0x00007f89c9118dd0 in gtk_box_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7f89c936f9c0 <gtk_widget_destroy>, callback_data=0x0) at ../../../../gtk/gtkbox.c:2671
box = <optimized out>
priv = 0x561a97dda070
child = <optimized out>
children = 0x0
#24 0x00007f89c9163d76 in gtk_container_destroy (widget=0x561a97dda1a0) at ../../../../gtk/gtkcontainer.c:1700
container = 0x561a97dda1a0
priv = 0x561a97dda090
#25 0x00007f89c9860a81 in g_closure_invoke (closure=0x561a97894db0, return_value=0x0, n_param_values=1, param_values=0x7ffce15f2c10, invocation_hint=0x7ffce15f2b90) at ../../../../gobject/gclosure.c:810
marshal = 0x7f89c985f060 <g_type_class_meta_marshal>
marshal_data = 0x98
in_marshal = 1
real_closure = 0x561a97894d90
__func__ = "g_closure_invoke"
#26 0x00007f89c9873c4a in signal_emit_unlocked_R (node=node@entry=0x561a978c1cd0, detail=detail@entry=0, instance=instance@entry=0x561a97dda1a0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce15f2c10) at ../../../../gobject/gsignal.c:3549
need_unset = 0
accumulator = 0x0
emission = {next = 0x7ffce15f3060, instance = 0x561a97dda1a0, ihint = {signal_id = 35, detail = 0, run_type = G_SIGNAL_RUN_CLEANUP}, state = EMISSION_STOP, chain_type = 94672212867120}
class_closure = 0x561a97894db0
hlist = <optimized out>
handler_list = 0x0
return_accu = 0x0
accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 35
max_sequential_handler_number = 14112
return_value_altered = <optimized out>
#27 0x00007f89c987c882 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce15f2dc0) at ../../../../gobject/gsignal.c:3391
instance_and_params = 0x7ffce15f2c10
signal_return_type = <optimized out>
param_values = 0x7ffce15f2c28
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#28 0x00007f89c987cecf in g_signal_emit (instance=instance@entry=0x561a97dda1a0, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffce15f2ea0, reg_save_area = 0x7ffce15f2de0}}
#29 0x00007f89c9377f7c in gtk_widget_dispose (object=0x561a97dda1a0) at ../../../../gtk/gtkwidget.c:12098
widget = 0x561a97dda1a0
priv = 0x561a97dda0b0
sizegroups = <optimized out>
#30 0x00007f89c9867448 in g_object_run_dispose (object=0x561a97dda1a0) at ../../../../gobject/gobject.c:1108
__func__ = "g_object_run_dispose"
#31 0x00007f89c9384019 in gtk_window_forall (container=0x561a97ce44d0, include_internals=0, callback=0x7f89c936f9c0 <gtk_widget_destroy>, callback_data=0x0) at ../../../../gtk/gtkwindow.c:8689
window = 0x561a97ce44d0
priv = 0x561a97ce4270
child = <optimized out>
#32 0x00007f89c9163d76 in gtk_container_destroy (widget=0x561a97ce44d0) at ../../../../gtk/gtkcontainer.c:1700
container = 0x561a97ce44d0
priv = 0x561a97ce43c0
#33 0x00007f89c9860b6d in g_closure_invoke (closure=0x561a97894db0, return_value=0x0, n_param_values=1, param_values=0x7ffce15f30f0, invocation_hint=0x7ffce15f3070) at ../../../../gobject/gclosure.c:810
marshal = 0x7f89c985f060 <g_type_class_meta_marshal>
marshal_data = 0x98
in_marshal = 0
real_closure = 0x561a97894d90
__func__ = "g_closure_invoke"
#34 0x00007f89c9873c4a in signal_emit_unlocked_R (node=node@entry=0x561a978c1cd0, detail=detail@entry=0, instance=instance@entry=0x561a97ce44d0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffce15f30f0) at ../../../../gobject/gsignal.c:3549
need_unset = 0
accumulator = 0x0
emission = {next = 0x0, instance = 0x561a97ce44d0, ihint = {signal_id = 35, detail = 0, run_type = G_SIGNAL_RUN_CLEANUP}, state = EMISSION_STOP, chain_type = 94672214277680}
class_closure = 0x561a97894db0
hlist = <optimized out>
handler_list = 0x561a9a12ddc0
return_accu = 0x0
accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 35
max_sequential_handler_number = 14105
return_value_altered = <optimized out>
#35 0x00007f89c987c882 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffce15f32a0) at ../../../../gobject/gsignal.c:3391
instance_and_params = 0x7ffce15f30f0
signal_return_type = <optimized out>
param_values = 0x7ffce15f3108
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#36 0x00007f89c987cecf in g_signal_emit (instance=instance@entry=0x561a97ce44d0, signal_id=<optimized out>, detail=detail@entry=0) at ../../../../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffce15f3380, reg_save_area = 0x7ffce15f32c0}}
#37 0x00007f89c9377f7c in gtk_widget_dispose (object=0x561a97ce44d0) at ../../../../gtk/gtkwidget.c:12098
widget = 0x561a97ce44d0
priv = 0x561a97ce43e0
sizegroups = <optimized out>
#38 0x00007f89c938bbb8 in gtk_window_dispose (object=0x561a97ce44d0) at ../../../../gtk/gtkwindow.c:3158
window = 0x561a97ce44d0
priv = 0x561a97ce4270
#39 0x00007f89c910b54b in gtk_application_window_dispose (object=0x561a97ce44d0) at ../../../../gtk/gtkapplicationwindow.c:804
window = 0x561a97ce44d0
#40 0x00007f89c9867448 in g_object_run_dispose (object=0x561a97ce44d0) at ../../../../gobject/gobject.c:1108
__func__ = "g_object_run_dispose"
#41 0x00007f89c936fa29 in gtk_widget_destroy (widget=<optimized out>) at ../../../../gtk/gtkwidget.c:4728
__func__ = "gtk_widget_destroy"
#42 0x00007f89c9231508 in gtk_main_do_event (event=event@entry=0x561a99e23720) at ../../../../gtk/gtkmain.c:1831
grab_widget = <optimized out>
window_group = 0x7f89a401ee10
rewritten_event = <optimized out>
device = 0x0
tmp_list = <optimized out>
event_widget = 0x561a97ce44d0
topmost_widget = <optimized out>
grab_widget = <optimized out>
rewritten_event = <optimized out>
tmp_list = <optimized out>
__inst = <optimized out>
window = <optimized out>
__inst = <optimized out>
__inst = <optimized out>
window = <optimized out>
__inst = <optimized out>
event_widget = <optimized out>
__t = <optimized out>
__t = <optimized out>
__t = <optimized out>
__t = <optimized out>
window_group = <optimized out>
device = <optimized out>
event = 0x561a99e23720
__func__ = "gtk_main_do_event"
topmost_widget = <optimized out>
__r = <optimized out>
__r = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
__r = <optimized out>
event_widget = <optimized out>
window_group = <optimized out>
device = <optimized out>
tmp_list = <optimized out>
__func__ = "gtk_main_do_event"
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
mnemonics_visible = <optimized out>
window = <optimized out>
__inst = <optimized out>
__t = <optimized out>
__r = <optimized out>
#43 0x00007f89c9385511 in send_delete_event (data=0x561a97ce44d0) at ../../../../gtk/gtkwindow.c:1325
window = 0x561a97ce44d0
priv = 0x561a97ce4270
event = 0x561a99e23720
#44 0x00007f89c8f26ac8 in gdk_threads_dispatch (data=0x561a97ac3ea0) at ../../../../gdk/gdk.c:755
dispatch = 0x561a97ac3ea0
ret = 0
#45 0x00007f89c9780ae8 in g_main_dispatch (context=0x561a978ce080) at ../../../../glib/gmain.c:3182
dispatch = 0x7f89c977d480 <g_idle_dispatch>
prev_source = 0x0
was_in_call = 0
user_data = 0x561a97ac3ea0
callback = 0x7f89c8f26aa0 <gdk_threads_dispatch>
cb_funcs = <optimized out>
cb_data = 0x561a99bab380
need_destroy = <optimized out>
source = 0x561a99abe350
current = 0x561a97879b50
i = 0
current = <optimized out>
i = <optimized out>
__func__ = "g_main_dispatch"
source = <optimized out>
_g_boolean_var_ = <optimized out>
was_in_call = <optimized out>
user_data = <optimized out>
callback = <optimized out>
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
dispatch = <optimized out>
prev_source = <optimized out>
_g_boolean_var_ = <optimized out>
#46 g_main_context_dispatch (context=context@entry=0x561a978ce080) at ../../../../glib/gmain.c:3847
No locals.
#47 0x00007f89c9780ed8 in g_main_context_iterate (context=context@entry=0x561a978ce080, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3920
max_priority = 0
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = 4
fds = 0x561a9967bd10
#48 0x00007f89c9780f6c in g_main_context_iteration (context=context@entry=0x561a978ce080, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3981
retval = <optimized out>
#49 0x00007f89c994713d in g_application_run (application=0x561a97abb440, argc=<optimized out>, argv=0x7ffce15f3718) at ../../../../gio/gapplication.c:2470
arguments = 0x561a979552c0
status = 0
context = 0x561a978ce080
acquired_context = <optimized out>
__func__ = "g_application_run"
#50 0x0000561a961dcd51 in main (argc=<optimized out>, argv=<optimized out>) at ../shell/main.c:57
application = 0x561a97abb440
Reported on launchpad too: https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1796855