You are not logged in.
When I attempt to open the keyboard settings where you can choose keys for 3rd level (among other things), the window closes itself. So I ran cinnamon-settings in terminal in order to see what the terminal will show. It showed me this error but I need help with decyphering it - what does it even mean?
/usr/share/cinnamon/cinnamon-settings/bin/capi.py:62: Warning: g_object_class_override_property: Can't find property to override for 'CcRegionPanel::argv'
return GObject.new(panel_type)
(cinnamon-settings.py:24754): Gtk-CRITICAL **: 20:43:40.875: gtk_widget_get_toplevel: assertion 'GTK_IS_WIDGET (widget)' failedWhich package should I downgrade in an attempt to fix this error? Whatever caused this error must have happened in the last month bc it was working just fine before that.
Core i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
Looks like https://github.com/linuxmint/cinnamon/issues/8419 but there should be a dbus warning as well?
Is this a (recent) regression? What packages where updated? (/var/log/pacman.log)
The upstream bug references python3-pam and there're reports about the pam 1.6 update breaking stuff™ (it's not really sorted out how and what and why) - so in case this broke w/ a pam update, you could try to downgrade that.
Offline
I downgraded pam but that didn't fix anything. Even after reboot still no change.
Looking through the link you posted, running this in terminal
LANG=en_US.UTF-8 cinnamon-settingsworks and cinnamon-settings starts in English which opens the needed advanced settings. Apparently it's something about locale but I have no idea what it might be. I regenerated my locale but the problem remained. The best I can think of is try regenerating an English locale and use the desktop in English.
GTK3 was updated a few days ago but downgrading it didn't fix the problem, so the problem might be caused by a gtk3 dependency.
Core i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
localectl
locale
locale -aOffline
[rado@arch]: ~>$ localectl
System Locale: LANG=bg_BG.UTF-8
VC Keymap: us
X11 Layout: us
[rado@arch]: ~>$ locale
LANG=bg_BG.UTF-8
LC_CTYPE="bg_BG.UTF-8"
LC_NUMERIC="bg_BG.UTF-8"
LC_TIME="bg_BG.UTF-8"
LC_COLLATE="bg_BG.UTF-8"
LC_MONETARY="bg_BG.UTF-8"
LC_MESSAGES="bg_BG.UTF-8"
LC_PAPER="bg_BG.UTF-8"
LC_NAME="bg_BG.UTF-8"
LC_ADDRESS="bg_BG.UTF-8"
LC_TELEPHONE="bg_BG.UTF-8"
LC_MEASUREMENT="bg_BG.UTF-8"
LC_IDENTIFICATION="bg_BG.UTF-8"
LC_ALL=
[rado@arch]: ~>$ locale -a
bg_BG.utf8
C
C.utf8
en_US.utf8
POSIXCore i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
Nothing suspicious about that - there might be a bogus token in one of the bulgarian translations, https://archlinux.org/packages/extra/an … nslations/
Unfortunately they all seem blobs releases, so you'd have to downgrade the package and see whether the problem goes away, then diff the bg files against each other to hopefully highlight the "dude, the % is a control char" line.
Offline
They're all '.mo' files. Text editors don't recognize this format.
Core i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
So downgrading that package works?
https://github.com/linuxmint/cinnamon-t … /po-export
This will be easier if you can isolate the problematic .mo file (use half the old and half the new files, if it crashes it's in that part of the new files and you can sustitute "half" of it w/ old files)
Edit: the nemo files are probably less suspicious ![]()
Last edited by seth (2024-01-19 22:55:43)
Offline
No, downgrading didn't fix the problem, so I tried to compare the files as you suggested, but I got stuck at the 'mo' extension. I couldn't find anything on the internet that suggests how to edit/read them. All I got was that 'mo' is some kind of interface library in a similar manner to the DLL for Windows and it can't be edited directly.
Core i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
If downgrading https://archlinux.org/packages/extra/an … nslations/ doesn't help then checking the files for errors is gonna be moot.
The bogus translation would come from somewhere else ![]()
Offline
You might be right about that. The Cinnamon I'm using is 5.2.7 and so are all translation files related to this version, including translations. Considering everything was OK until a month or so ago and ALL* the cinnamon packages are in pacman's ignore list (translations included), something else must be going on.
accountsservice caribou cinnamon cinnamon-control-center cinnamon-desktop cinnamon-menus cinnamon-screensaver cinnamon-session cinnamon-settings-daemon cinnamon-translations cjs dbus-python gnome-backgrounds gsound gstreamer gtk3 js78 libcroco libgnomekbd libkeybinder3 librsvg-2 metacity muffin nemo network-manager-applet polkit-gnome python-cairo python-gobject python-pam python-pexpect python-pillow python-pyinotify python-pytz python-requests python-tinycss2 python-xapp timezonemap vala xapp xdg-desktop-portal-xappAll these files have been in pacman's ignore list since the last time I reinstalled Arch - March 18th, 2023. And since March 18th, 2023 until quite recently everything was OK.
I'll keep searching the internet and if I manage to fix it, I'll say it in this topic. If not, I'll probably have to reinstall the system.
Core i7-4770, GTX 1660 Ti, 32 GB RAM, Arch 6.x LTS, Cinnamon 5.2.7, GDM
Offline
I see this crashing frame with Cinnamon 6.0.4:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __GI___wcscoll_l (s1=s1@entry=0x0,
s2=s2@entry=0x5ccf16f79660 L"Разделител с нулева широчина на 3-то ниво и съединител с нулева широчина на 4-то ниво", l=0x7479ad3f73c0 <_nl_global_locale>) at ../string/strcoll_l.c:273
273 if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0')) That s2 string stems from the xkeyboard-config package. Did you update it recently?
The crash is not directly caused by that s2 string on line 273, but it does seemingly hint at a problem with bg.po in xkeyboard-config.
Offline
So hopefully correctmost is onto something but
have been in pacman's ignore list since the last time I reinstalled Arch - March 18th, 2023
WTF?
https://wiki.archlinux.org/title/System … nsupported
But I see, we've been there: https://bbs.archlinux.org/viewtopic.php?id=290874
YOU ARE USING THE WRON DISTRIBUTION.
https://gitlab.freedesktop.org/xkeyboar … g.po#L4542 doesn't look like it's error-prone, though and xkeyboard-config was last updated 2023-10-14 …
@correctmost, assuming your system is actually fully updated, is this a recent development and do you have a complete coredump?
The problem is more that "s1=s1@entry=0x0" is a nullptr string.
Offline
https://gitlab.freedesktop.org/xkeyboar … g.po#L4542 doesn't look like it's error-prone, though and xkeyboard-config was last updated 2023-10-14 …
@correctmost, assuming your system is actually fully updated, is this a recent development and do you have a complete coredump?
The problem is more that "s1=s1@entry=0x0" is a nullptr string.
I can reproduce the crash on a fully updated system with these packages:
cinnamon 6.0.4-1
cinnamon-control-center 6.0.0-1
glib2 2.78.3-1
libxklavier 5.4-5
xkeyboard-config 2.40-1Execution:
$ cat /etc/locale.gen
bg_BG.UTF-8 UTF-8
en_US.UTF-8 UTF-8
$ sudo locale-gen
Generating locales...
bg_BG.UTF-8... done
en_US.UTF-8... done
Generation complete.
$ LANG=bg_BG.UTF-8 cinnamon-settings
libgoa-1.0.so.0: не може да се отвори файлът със споделения обект: Няма такъв файл или директория
Failed to load module: /usr/lib/cinnamon-control-center-1/panels/libonline-accounts.so
Using pam module (python3-pampy)
Loading Keyboard module
(cinnamon-settings.py:1879): Gtk-CRITICAL **: 06:18:32.801: gtk_widget_get_toplevel: assertion 'GTK_IS_WIDGET (widget)' failed
Segmentation fault (core dumped)Full backtrace:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __GI___wcscoll_l (s1=s1@entry=0x0, s2=s2@entry=0x5d5786d0c660 L"Разделител с нулева широчина на 3-то ниво и съединител с нулева широчина на 4-то ниво",
l=0x7646103f73c0 <_nl_global_locale>) at ../string/strcoll_l.c:273
273 if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0'))
[Current thread is 1 (Thread 0x7646109eb740 (LWP 1879))]
#1 0x00007646102d5914 in __GI___wcscoll
(s1=s1@entry=0x0, s2=s2@entry=0x5d5786d0c660 L"Разделител с нулева широчина на 3-то ниво и съединител с нулева широчина на 4-то ниво") at ../string/strcoll.c:33
#2 0x000076460f7496c0 in g_utf8_collate (str1=<optimized out>, str2=<optimized out>) at ../glib/glib/gunicollate.c:122
#3 0x000076460f72e00a in g_slist_sort_merge (user_data=0x0, compare_func=0x76460a499e60 <xkb_option_checks_compare>, l2=0x5d5787cf7260 = {...}, l1=0x5d5787b30650 = {...}) at ../glib/glib/gslist.c:1005
#4 g_slist_sort_real (list=<optimized out>, compare_func=compare_func@entry=0x76460a499e60 <xkb_option_checks_compare>, user_data=user_data@entry=0x0) at ../glib/glib/gslist.c:1047
#5 0x000076460f72dfc2 in g_slist_sort_real (list=0x5d5787b2c9f0 = {...}, compare_func=compare_func@entry=0x76460a499e60 <xkb_option_checks_compare>, user_data=user_data@entry=0x0) at ../glib/glib/gslist.c:1047
#6 0x000076460f72dfc2 in g_slist_sort_real (list=0x5d5787b1da10 = {...}, compare_func=compare_func@entry=0x76460a499e60 <xkb_option_checks_compare>, user_data=user_data@entry=0x0) at ../glib/glib/gslist.c:1047
#7 0x000076460f72dfc2 in g_slist_sort_real (list=0x5d5787cc46d0 = {...}, compare_func=compare_func@entry=0x76460a499e60 <xkb_option_checks_compare>, user_data=user_data@entry=0x0) at ../glib/glib/gslist.c:1047
#8 0x000076460f72e4eb in g_slist_sort (list=<optimized out>, compare_func=compare_func@entry=0x76460a499e60 <xkb_option_checks_compare>) at ../glib/glib/gslist.c:1071
#9 0x000076460a49a274 in xkb_options_add_group (config_registry=config_registry@entry=0x5d5787149cf0, config_item=config_item@entry=0x5d5787b705c0, dialog=dialog@entry=0x5d5787b491b0)
at ../cinnamon-control-center-6.0.0/panels/region/cinnamon-region-panel-xkbot.c:339
#10 0x000076460c3d8f22 in xkl_config_registry_foreach_option_group (data=<optimized out>, func=<optimized out>, config=<optimized out>) at /usr/src/debug/libxklavier/libxklavier-libxklavier-5.4/libxklavier/xklavier_config.c:697
#11 xkl_config_registry_foreach_option_group (config=0x5d5787149cf0, func=func@entry=0x76460a49a0d0 <xkb_options_add_group>, data=data@entry=0x5d5787b491b0)
at /usr/src/debug/libxklavier/libxklavier-libxklavier-5.4/libxklavier/xklavier_config.c:642
#12 0x000076460a49b8c7 in xkb_options_load_options (dialog=0x5d5787b491b0) at ../cinnamon-control-center-6.0.0/panels/region/cinnamon-region-panel-xkbot.c:390
#13 0x000076460a49b9d3 in xkb_options_popup_dialog (dialog=0x5d57878b7b50) at ../cinnamon-control-center-6.0.0/panels/region/cinnamon-region-panel-xkbot.c:451
#17 0x000076460f661d34 in <emit signal 'clicked' on instance ???> (instance=instance@entry=0x5d5787a22660, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#14 0x000076460f661b73 in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7ffcbe2333f0, instance=0x5d5787a22660, return_value=0x0, closure=0x5d57878be300) at ../glib/gobject/gclosure.c:895
#15 signal_emit_valist_unlocked (instance=instance@entry=0x5d5787a22660, signal_id=signal_id@entry=188, detail=detail@entry=0, var_args=var_args@entry=0x7ffcbe2333f0) at ../glib/gobject/gsignal.c:3516
#16 0x000076460f661c77 in g_signal_emit_valist (instance=0x5d5787a22660, signal_id=188, detail=0, var_args=var_args@entry=0x7ffcbe2333f0) at ../glib/gobject/gsignal.c:3355
#18 0x000076460cec7814 in gtk_button_clicked (button=button@entry=0x5d5787a22660) at ../gtk/gtk/gtkbutton.c:1541
#19 0x000076460cec97e9 in gtk_button_do_release (emit_clicked=1, button=0x5d5787a22660) at ../gtk/gtk/gtkbutton.c:1845
#20 gtk_button_do_release (emit_clicked=1, button=0x5d5787a22660) at ../gtk/gtk/gtkbutton.c:1832
#21 gtk_real_button_released (button=0x5d5787a22660) at ../gtk/gtk/gtkbutton.c:1963
#22 0x000076460f6426c0 in g_closure_invoke (closure=0x5d57872de7d0, return_value=0x0, n_param_values=1, param_values=0x7ffcbe2336f0, invocation_hint=0x7ffcbe233640) at ../glib/gobject/gclosure.c:832
#23 0x000076460f670b7a in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffcbe2337c0, detail=detail@entry=0, instance=instance@entry=0x5d5787a22660, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffcbe2336f0)
at ../glib/gobject/gsignal.c:3813
#24 0x000076460f661a42 in signal_emit_valist_unlocked (instance=instance@entry=0x5d5787a22660, signal_id=signal_id@entry=187, detail=detail@entry=0, var_args=var_args@entry=0x7ffcbe233920) at ../glib/gobject/gsignal.c:3612
#25 0x000076460f661c77 in g_signal_emit_valist (instance=0x5d5787a22660, signal_id=187, detail=0, var_args=var_args@entry=0x7ffcbe233920) at ../glib/gobject/gsignal.c:3355
#26 0x000076460f661d34 in g_signal_emit (instance=instance@entry=0x5d5787a22660, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#27 0x000076460cec95b5 in multipress_released_cb (gesture=0x5d5787a22820, n_press=<optimized out>, x=<optimized out>, y=<optimized out>, widget=0x5d5787a22660) at ../gtk/gtk/gtkbutton.c:666
#32 0x000076460f661d34 in <emit signal 'released' on instance ???> (instance=instance@entry=0x5d5787a22820, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#28 0x000076460ce89155 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv
(closure=<optimized out>, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5d57873f6d70) at gtk/gtkmarshalers.c:4804
#29 0x000076460f661b73 in _g_closure_invoke_va (param_types=0x5d57873f6d70, n_params=<optimized out>, args=0x7ffcbe233c70, instance=0x5d5787a22820, return_value=0x0, closure=0x5d5787a22c20) at ../glib/gobject/gclosure.c:895
#30 signal_emit_valist_unlocked (instance=instance@entry=0x5d5787a22820, signal_id=signal_id@entry=284, detail=detail@entry=0, var_args=var_args@entry=0x7ffcbe233c70) at ../glib/gobject/gsignal.c:3516
#31 0x000076460f661c77 in g_signal_emit_valist (instance=0x5d5787a22820, signal_id=284, detail=0, var_args=var_args@entry=0x7ffcbe233c70) at ../glib/gobject/gsignal.c:3355
#33 0x000076460cfa3d77 in gtk_gesture_multi_press_end (gesture=0x5d5787a22820, sequence=sequence@entry=0x0) at ../gtk/gtk/gtkgesturemultipress.c:287
#38 0x000076460f661d34 in <emit signal 'end' on instance ???> (instance=instance@entry=0x5d5787a22820, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#34 0x000076460f6464f7 in g_cclosure_marshal_VOID__BOXEDv
(closure=0x5d57873f9db0, return_value=<optimized out>, instance=0x5d5787a22820, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5d57873f9de0) at ../glib/gobject/gmarshal.c:1686
#35 0x000076460f661b73 in _g_closure_invoke_va (param_types=0x5d57873f9de0, n_params=<optimized out>, args=0x7ffcbe234020, instance=0x5d5787a22820, return_value=0x0, closure=0x5d57873f9db0) at ../glib/gobject/gclosure.c:895
#36 signal_emit_valist_unlocked (instance=instance@entry=0x5d5787a22820, signal_id=signal_id@entry=279, detail=detail@entry=0, var_args=var_args@entry=0x7ffcbe234020) at ../glib/gobject/gsignal.c:3516
#37 0x000076460f661c77 in g_signal_emit_valist (instance=0x5d5787a22820, signal_id=279, detail=0, var_args=var_args@entry=0x7ffcbe234020) at ../glib/gobject/gsignal.c:3355
#39 0x000076460cf9e1f8 in _gtk_gesture_set_recognized (sequence=0x0, recognized=0, gesture=0x5d5787a22820) at ../gtk/gtk/gtkgesture.c:346
#40 _gtk_gesture_check_recognized (gesture=gesture@entry=0x5d5787a22820, sequence=sequence@entry=0x0) at ../gtk/gtk/gtkgesture.c:387
#41 0x000076460cfa54cb in gtk_gesture_handle_event (controller=0x5d5787a22820, event=0x5d5787b49960) at ../gtk/gtk/gtkgesture.c:787
#42 0x000076460cfa5e63 in gtk_gesture_single_handle_event (controller=0x5d5787a22820, event=0x5d5787b49960) at ../gtk/gtk/gtkgesturesingle.c:222
#43 0x000076460cf61444 in gtk_event_controller_handle_event (controller=0x5d5787a22820, event=0x5d5787b49960) at ../gtk/gtk/gtkeventcontroller.c:230
#44 0x000076460d145f57 in _gtk_widget_run_controllers (widget=0x5d5787a22660, event=0x5d5787b49960, phase=GTK_PHASE_BUBBLE) at ../gtk/gtk/gtkwidget.c:7447
#49 0x000076460f661d34 in <emit signal 'button-release-event' on instance ???> (instance=instance@entry=0x5d5787a22660, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#45 0x000076460ce87829 in _gtk_marshal_BOOLEAN__BOXEDv
(closure=0x5d5787221240, return_value=0x7ffcbe2343c0, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5d5787221270) at gtk/gtkmarshalers.c:130
#46 0x000076460f661b73 in _g_closure_invoke_va (param_types=0x5d5787221270, n_params=<optimized out>, args=0x7ffcbe2344a0, instance=0x5d5787a22660, return_value=0x7ffcbe2343c0, closure=0x5d5787221240)
at ../glib/gobject/gclosure.c:895
#47 signal_emit_valist_unlocked (instance=instance@entry=0x5d5787a22660, signal_id=signal_id@entry=80, detail=detail@entry=0, var_args=var_args@entry=0x7ffcbe2344a0) at ../glib/gobject/gsignal.c:3516
#48 0x000076460f661c77 in g_signal_emit_valist (instance=0x5d5787a22660, signal_id=80, detail=0, var_args=var_args@entry=0x7ffcbe2344a0) at ../glib/gobject/gsignal.c:3355
#50 0x000076460d154cd5 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x5d5787a22660, event=0x5d5787b49960) at ../gtk/gtk/gtkwidget.c:7812
#51 0x000076460cfeec6b in propagate_event_up (topmost=<optimized out>, event=<optimized out>, widget=0x5d5787a22660) at ../gtk/gtk/gtkmain.c:2588
#52 propagate_event (widget=widget@entry=0x5d5787a22660, event=event@entry=0x5d5787b49960, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../gtk/gtk/gtkmain.c:2691
#53 0x000076460cfeeda2 in gtk_propagate_event (event=0x5d5787b49960, widget=0x5d5787a22660) at ../gtk/gtk/gtkmain.c:2725
#54 0x000076460cfef797 in gtk_main_do_event (event=0x5d5787b49960) at ../gtk/gtk/gtkmain.c:1921
#55 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691
#56 0x000076460d964b77 in _gdk_event_emit (event=0x5d5787b49960) at ../gtk/gdk/gdkevents.c:73
#57 _gdk_event_emit (event=0x5d5787b49960) at ../gtk/gdk/gdkevents.c:67
#58 0x000076460d9bd438 in gdk_event_source_dispatch.lto_priv () at ../gtk/gdk/x11/gdkeventsource.c:354
#59 0x000076460f70df69 in g_main_dispatch (context=0x5d57871628e0) at ../glib/glib/gmain.c:3476
#60 0x000076460f76c367 in g_main_context_dispatch_unlocked (context=0x5d57871628e0) at ../glib/glib/gmain.c:4284
#61 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x5d57871628e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#62 0x000076460f70c162 in g_main_context_iteration (context=context@entry=0x5d57871628e0, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4414
#63 0x000076460f499b66 in g_application_run (application=0x5d57873f0bb0, argc=<optimized out>, argv=0x5d5787786490) at ../glib/gio/gapplication.c:2577
#64 0x00007646109d54f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#65 0x00007646109d1f5e in ffi_call_int (cif=cif@entry=0x5d57876d9ff8, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#66 0x00007646109d4b73 in ffi_call (cif=cif@entry=0x5d57876d9ff8, fn=<optimized out>, rvalue=rvalue@entry=0x7ffcbe234a98, avalue=<optimized out>) at ../src/x86/ffi64.c:710
#67 0x000076460ffa66d1 in pygi_invoke_c_callable (function_cache=0x5d57876d9f50, state=<optimized out>, py_args=<optimized out>, py_kwargs=<optimized out>) at ../pygobject/gi/pygi-invoke.c:684
#68 0x000076460ffa5090 in pygi_function_cache_invoke (py_kwargs=0x7645fab22440, py_args=0x7645fadbd3c0, function_cache=<optimized out>) at ../pygobject/gi/pygi-cache.c:862
#69 pygi_callable_info_invoke (user_data=0x0, cache=<optimized out>, kwargs=0x7645fab22440, py_args=0x7645fadbd3c0, info=<optimized out>) at ../pygobject/gi/pygi-invoke.c:727
#70 _wrap_g_callable_info_invoke (self=<optimized out>, py_args=0x7645fadbd3c0, kwargs=0x7645fab22440) at ../pygobject/gi/pygi-invoke.c:764
#71 0x0000764610616846 in _PyObject_Call (kwargs=<optimized out>, args=0x7645fadbd3c0, callable=0x76460e95caf0, tstate=0x764610989378 <_PyRuntime+166328>) at Objects/call.c:343
#72 PyObject_Call (callable=0x76460e95caf0, args=0x7645fadbd3c0, kwargs=<optimized out>) at Objects/call.c:355
#73 0x00007646105e8f3d in do_call_core (use_tracing=<optimized out>, kwdict=0x7645fab22440, callargs=0x7645fadbd3c0, func=0x76460e95caf0, tstate=<optimized out>) at Python/ceval.c:7343
#74 _PyEval_EvalFrameDefault (tstate=<optimized out>, frame=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:5367
#75 0x000076461069c484 in _PyEval_EvalFrame (throwflag=0, frame=0x7646109fe020, tstate=0x764610989378 <_PyRuntime+166328>) at ./Include/internal/pycore_ceval.h:73
#76 _PyEval_Vector (tstate=tstate@entry=0x764610989378 <_PyRuntime+166328>, func=func@entry=0x7646100cc540, locals=locals@entry=0x764610126b80, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0)
at Python/ceval.c:6425
#77 0x000076461069be6c in PyEval_EvalCode (co=0x5d5786d10860, globals=<optimized out>, locals=0x764610126b80) at Python/ceval.c:1140
#78 0x00007646106b9fc3 in run_eval_code_obj (tstate=tstate@entry=0x764610989378 <_PyRuntime+166328>, co=co@entry=0x5d5786d10860, globals=globals@entry=0x764610126b80, locals=locals@entry=0x764610126b80) at Python/pythonrun.c:1710
#79 0x00007646106b63ea in run_mod
(mod=mod@entry=0x5d5786e71508, filename=filename@entry=0x764610060ff0, globals=globals@entry=0x764610126b80, locals=locals@entry=0x764610126b80, flags=flags@entry=0x7ffcbe234fe8, arena=arena@entry=0x76461004f7b0)
at Python/pythonrun.c:1731
#80 0x00007646106cc723 in pyrun_file
(fp=fp@entry=0x5d5786c56470, filename=filename@entry=0x764610060ff0, start=start@entry=257, globals=globals@entry=0x764610126b80, locals=locals@entry=0x764610126b80, closeit=closeit@entry=1, flags=0x7ffcbe234fe8)
at Python/pythonrun.c:1626
#81 0x00007646106cc095 in _PyRun_SimpleFileObject (fp=0x5d5786c56470, filename=0x764610060ff0, closeit=1, flags=0x7ffcbe234fe8) at Python/pythonrun.c:440
#82 0x00007646106ca958 in _PyRun_AnyFileObject (fp=0x5d5786c56470, filename=0x764610060ff0, closeit=1, flags=0x7ffcbe234fe8) at Python/pythonrun.c:79
#83 0x00007646106c51f8 in pymain_run_file_obj (skip_source_first_line=0, filename=0x764610060ff0, program_name=0x7646100d44e0) at Modules/main.c:360
#84 pymain_run_file (config=0x76461096f3c0 <_PyRuntime+59904>) at Modules/main.c:379
#85 pymain_run_python (exitcode=0x7ffcbe234fe0) at Modules/main.c:601
#86 Py_RunMain () at Modules/main.c:680
#87 0x000076461068e79b in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:734
#88 0x0000764610245cd0 in __libc_start_call_main (main=main@entry=0x5d57858c0120 <main>, argc=argc@entry=2, argv=argv@entry=0x7ffcbe235238) at ../sysdeps/nptl/libc_start_call_main.h:58
#89 0x0000764610245d8a in __libc_start_main_impl (main=0x5d57858c0120 <main>, argc=2, argv=0x7ffcbe235238, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffcbe235228) at ../csu/libc-start.c:360
#90 0x00005d57858c0045 in _start ()There was a recent behavior change in glib2 that might explain why the crash is only showing up now for rado84: https://gitlab.gnome.org/GNOME/glib/-/issues/3122
I added a breakpoint to test the various translation strings with g_utf8_collate and got a nullptr crash with this (seemingly truncated) string:
GDB output:
(gchar *) 0x5ecd95454ef0 "Разделител с нулева широчина на 2-ро ниво, съединител с нулева широчина на 3-то ниво и интервал без разде", <incomplete sequence \321>
Related lines from bg.po:
#: rules/base.xml:8168
msgid "Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level"
msgstr "Разделител с нулева широчина на 2-ро ниво, съединител с нулева широчина на 3-то ниво и интервал без разделяне на 4-то ниво"I think this means the translation file has invalid data or the translation file is not being read correctly.
Last edited by correctmost (2024-01-20 13:14:11)
Offline
I think this means the translation file has invalid data or the translation file is not being read correctly.
libxklavier is truncating the string at 191 characters and creating an invalid UTF-8 string:
/*
* Maximum description length, including '\\0' character
* (this length is in bytes, so for UTF-8 encoding in
* XML file the actual maximum length can be smaller)
*/
#define XKL_MAX_CI_DESC_LENGTH 192The crash goes away if I apply this patch to libxklavier:
diff --git a/libxklavier/xkl_config_item.h b/libxklavier/xkl_config_item.h
index 46eff0e..6eb551d 100644
--- a/libxklavier/xkl_config_item.h
+++ b/libxklavier/xkl_config_item.h
@@ -39,7 +39,7 @@
* (this length is in bytes, so for UTF-8 encoding in
* XML file the actual maximum length can be smaller)
*/
-#define XKL_MAX_CI_DESC_LENGTH 192
+#define XKL_MAX_CI_DESC_LENGTH 256
#ifdef __cplusplus
extern "C" {
@@ -183,7 +183,7 @@ extern const gchar * xkl_config_item_get_description(XklConfigItem * item);
/**
* xkl_config_item_set_description:
* @item: the XklConfigItem object to be changed
- * @description: (transfer none) (allow-none): Description (max. 192
+ * @description: (transfer none) (allow-none): Description (max. 256
* characters); can be NULL.
*
* Change the @description field of a XklConfigItem. This is mostly useful forGiven that libxklavier is unmaintained, I'm not sure what the next best steps are.
Offline
Technically xklavier is a consumer of xkeyboard-config, but upstream looks dead as a doornail so you'll have to appeal for a downstream patch, https://gitlab.archlinux.org/archlinux/ … r/-/issues
If that gets denied you'd have to ask to shorten the string, https://gitlab.freedesktop.org/xkeyboar … g/-/issues or https://gitlab.freedesktop.org/svu directly.
If it cannot be shortened and no dowstream patch is possible, you'll probably have to learn french ![]()
Offline
Thanks for the links. I filed a ticket with xkeyboard-config to see if they have any ideas about fixing the issue more permanently: https://gitlab.freedesktop.org/xkeyboar … issues/435
The XKL_MAX_CI_DESC_LENGTH patch changes the size of a struct and breaks ABI compatibility, so it doesn't seem ideal for a downstream patch.
Offline