gnome control-center crashed with sigsegv in g_str_hash() whenever I try to add input sources
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gnome-desktop |
Fix Released
|
Unknown
|
|||
gnome-desktop3 (Debian) |
Fix Released
|
Unknown
|
|||
gnome-desktop3 (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Hirsute |
Fix Released
|
High
|
Gunnar Hjalmarsson |
Bug Description
[Impact]
If the dconf key show-all-sources is "true", any attempt to add new input sources via Settings results in a segfault. It means that users can't make use of the so-called "exotic" XKB keyboard layouts.
The proposed upload includes a cherry picked upstream commit which fixes the issue.
[Test Plan]
1. Enable show-all-sources:
gsettings set org.gnome.
2. Select Settings -> Region & Language and click the + button to add
an input source.
-> Find that g-c-c crashes.
3. Install the gnome-desktop3 binaries from hirsute-proposed.
4. Repeat step 2.
-> Find that you are able to add an input source.
[Where problems could occur]
The change is a targeted fix to address the issue at hand. It was committed upstream on April 22, and no reported regression.
[Original description]
I've been facing the problems for about 9 months now. Back then I thought that maybe getting a new version would solve the problem, but turns out it didn't. Whenever I try to add some Input Sources from it just crashes.
Reproducing it is very easy: running gnome-control-
After enough digging, this is what I can retrieve from gdb:
#0 g_str_hash (v=0x506) at ../../.
p = 0x506 <error: Cannot access memory at address 0x506>
h = 5381
#1 0x00007ffff7c6e174 in g_hash_
node_hash = <optimized out>
hash_value = <optimized out>
step = 0
node_index = <optimized out>
node_hash = <optimized out>
__func__ = "g_hash_
#2 g_hash_
node_hash = <optimized out>
__func__ = "g_hash_
#3 0x00007ffff6f03013 in gnome_xkb_
priv = 0x555556395600
layout = 0x7ffff6262ba0 <main_arena>
__func__ = "gnome_
#4 0x00005555555fe467 in input_source_
row = 0x0
widget = <optimized out>
#5 0x00005555555fe81d in add_rows_to_table (self=self@
table = 0x555556770000 = {[0x55555657bb00 "cm+mmuock"] = 0x555556ca91a0, [0x555556506340 "us+3l"] = 0x555556400920, [0x55555656f6f0 "ph+capewell-
row = <optimized out>
id = 0x506 <error: Cannot access memory at address 0x506>
#6 0x00005555555ffb78 in get_locale_infos (self=0x5555568
tmp = 0x5555568acf70 "English (Botswana)"
type = 0x0
lang_code = 0x55555680eb30 "en"
id = 0x0
info = 0x555556450320
locale = 0x55555680e950
all_layouts = 0x0
locale_ids = 0x55555680e950
l = <optimized out>
self = 0x5555568d22b0
error = 0x0
#7 cc_input_
self = 0x5555568d22b0
error = 0x0
#8 0x00005555555f6ebc in show_input_chooser (self=0x5555563
chooser = <optimized out>
#9 0x00007ffff7d7d61e in g_cclosure_
data1 = 0x555556396200
data2 = <optimized out>
callback = 0x5555555f6fe0 <input_
arg0 = 0x555556277a50
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffd060, reg_save_area = 0x7fffffffcfa0}}
#10 0x00007ffff7d9c724 in _g_closure_
marshal = <optimized out>
in_marshal = 0
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd160, instance = 0x555556396200, ihint = {signal_id = 313, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_
signal_id = 313
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#11 g_signal_
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd160, instance = 0x555556396200, ihint = {signal_id = 313, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_
signal_id = 313
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#12 0x00007ffff7d9c893 in g_signal_emit (instance=
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd060, reg_save_area = 0x7fffffffcfa0}}
#13 0x00007ffff7626199 in gtk_list_
priv = 0x555556396010
#14 gtk_list_
priv = 0x555556396010
#15 gtk_list_
priv = 0x555556396010
#16 0x00007ffff77d264b in _gtk_marshal_
data1 = <optimized out>
data2 = <optimized out>
callback = <optimized out>
arg0 = 1286
arg1 = 2.1137067449068
arg2 = 1.4951811470334
args_copy = {{gp_offset = 32, fp_offset = 80, overflow_arg_area = 0x7fffffffd340, reg_save_area = 0x7fffffffd280}}
#17 0x00007ffff7d9c724 in _g_closure_
marshal = <optimized out>
in_marshal = 0
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd480, instance = 0x5555562f7780, ihint = {signal_id = 253, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_
signal_id = 253
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#18 g_signal_
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd480, instance = 0x5555562f7780, ihint = {signal_id = 253, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_
signal_id = 253
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#19 0x00007ffff7d9c893 in g_signal_emit (instance=
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd340, reg_save_area = 0x7fffffffd280}}
#20 0x00007ffff75e6e4c in gtk_gesture_
multi_press = 0x5555562f7780
priv = 0x5555562f76d0
current = 0x0
x = 313
y = 121
interpreted = 1
state = <optimized out>
#21 0x00007ffff7d832df in g_cclosure_
data1 = 0x5555562f7780
data2 = <optimized out>
callback = 0x7ffff75e6da0 <gtk_gesture_
arg0 = 0x0
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffd660, reg_save_area = 0x7fffffffd5a0}}
#22 0x00007ffff7d9c724 in _g_closure_
marshal = <optimized out>
in_marshal = 0
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd870, instance = 0x5555562f7780, ihint = {signal_id = 248, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_
signal_id = 248
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#23 g_signal_
return_accu = <optimized out>
accu = {g_type = 0x0, 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}}}
accumulator = 0x0
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x7fffffffd870, instance = 0x5555562f7780, ihint = {signal_id = 248, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_
signal_id = 248
rtype = 0x4
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#24 0x00007ffff7d9c893 in g_signal_emit (instance=
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd660, reg_save_area = 0x7fffffffd5a0}}
#25 0x00007ffff75de78b in _gtk_gesture_
priv = <optimized out>
priv = 0x5555562f7730
#26 _gtk_gesture_
priv = 0x5555562f7730
#27 0x00007ffff75e668b in gtk_gesture_
sequence = 0x0
priv = 0x5555562f7730
gesture = 0x5555562f7780
#28 gtk_gesture_
gesture = 0x5555562f7780
#29 0x00007ffff75e7293 in gtk_gesture_
sequence = <optimized out>
priv = 0x5555562f7710
source = GDK_SOURCE_MOUSE
button = <optimized out>
i = <optimized out>
retval = <optimized out>
#30 0x00007ffff75adec0 in gtk_event_
retval = 0
__func__ = "gtk_event_
#31 0x00007ffff7781405 in _gtk_widget_
next = 0x0
data = 0x555556395120
handled = 0
priv = 0x555556396110
l = <optimized out>
#32 0x00007ffff77c8898 in _gtk_marshal_
data1 = 0x555556396200
data2 = <optimized out>
callback = 0x7ffff7781730 <gtk_widget_
v_return = <optimized out>
arg0 = 0x555556402a80
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffda50, reg_save_area = 0x7fffffffd990}}
__func__ = "_gtk_marshal_
#33 0x00007ffff7d9c724 in _g_closure_
marshal = <optimized out>
in_marshal = 0
return_accu = <optimized out>
accu = {g_type = 0x14, 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}}}
accumulator = 0x555555bc8470
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x0, instance = 0x555556396200, ihint = {signal_id = 94, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_
signal_id = 94
rtype = 0x14
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#34 g_signal_
return_accu = <optimized out>
accu = {g_type = 0x14, 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}}}
accumulator = 0x555555bc8470
emission = Python Exception <class 'TypeError'> can only concatenate str (not "NoneType") to str:
{next = 0x0, instance = 0x555556396200, ihint = {signal_id = 94, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_
signal_id = 94
rtype = 0x14
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_
#35 0x00007ffff7d9c893 in g_signal_emit (instance=
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffda50, reg_save_area = 0x7fffffffd990}}
#36 0x00007ffff778fb44 in gtk_widget_
signal_num = <optimized out>
return_val = <optimized out>
handled = 0
#37 0x00007ffff7631240 in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=
tmp = <optimized out>
#38 propagate_event (widget=
#39 0x00007ffff7631373 in gtk_propagate_event (widget=
__func__ = "gtk_propagate_
#40 0x00007ffff76324fb in gtk_main_do_event (event=
grab_widget = 0x555556396200
device = <optimized out>
tmp_list = <optimized out>
__func__ = "gtk_main_do_event"
#41 gtk_main_do_event (event=<optimized out>) at ../../.
__func__ = "gtk_main_do_event"
#42 0x00007ffff7313753 in _gdk_event_emit (event=
#43 _gdk_event_emit (event=
#44 0x00007ffff737a356 in gdk_event_
source = <optimized out>
display = <optimized out>
event = 0x555556402a80
#45 0x00007ffff7c8a8eb in g_main_dispatch (context=
dispatch = 0x7ffff737a330 <gdk_event_
prev_source = 0x0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = <optimized out>
cb_data = <optimized out>
source = 0x555555ad9990
current = 0x555555ac2fe0
i = 0
#46 g_main_
#47 0x00007ffff7cddd28 in g_main_
timeout = 399
some_ready = 1
nfds = <optimized out>
fds = 0x55555633f2d0
#48 0x00007ffff7c88023 in g_main_
retval = <optimized out>
#49 0x00007ffff7ea227d in g_application_run (application=
arguments = 0x555556115130
status = 0
context = 0x555555ac5000
__func__ = "g_application_run"
#50 0x00005555555b6b48 in main (argc=<optimized out>, argv=<optimized out>) at ../shell/main.c:65
application = 0x5555560576f0
Here are the versions of the relevant packages:
gnome-control-
libglib2.0-0 2.68.1-2 amd64
libglib2.0-0 2.68.1-2 i386
libgnome-
libgtk-3-0 3.24.29-1ubuntu1 amd64
libgtk-3-0 3.24.29-1ubuntu1 i386
And this is not like that using the latest(not yet in main impish repo) pacakges and being in the Development Branch is causing the issue, as I already mentioned earlier. I just changed over to the Development branch for only 3 months now.
I am also thinking of raising an issue on this on gnome GitLab.
And for the time being, how can I get around this and add some Input Sources by, I don't know, changing some user configs?
Appreciate your help in advance
tags: | added: ui |
tags: | removed: ui |
tags: | added: libglib libgtk |
Changed in gnome-desktop3 (Ubuntu Hirsute): | |
assignee: | nobody → Gunnar Hjalmarsson (gunnarhj) |
importance: | Undecided → High |
status: | New → In Progress |
description: | updated |
Changed in gnome-desktop3 (Debian): | |
status: | Unknown → Fix Released |
Changed in gnome-desktop: | |
status: | Unknown → Fix Released |
I can't find any other reports of such a crash. Please report it to the developers at https:/ /gitlab. gnome.org/ GNOME/gnome- control- center/ -/issues