Summary: | gnome-base/gnome-control-center-44.0: Gtk "Invalid object type CcTzDialog" followed by SIGSEGV in panels/datetime/cc-datetime-panel.cc | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alexandra Parker <alex.iris.parker> |
Component: | Current packages | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED TEST-REQUEST | ||
Severity: | normal | CC: | aklhfex |
Priority: | Normal | Keywords: | PATCH |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1742 https://bugs.gentoo.org/show_bug.cgi?id=695326 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 901805 | ||
Attachments: | logs and sigsegv |
Description
Alexandra Parker
2023-03-26 19:28:50 UTC
Please note for gnome-control-center I'm using these settings: CFLAGS="-O2 -pipe -ggdb" CXXFLAGS="-O2 -pipe -ggdb" LDFLAGS="" FEATURES="compressdebug installsources preserve-libs sandbox splitdebug userpriv usersandbox" # according to build.log Created attachment 859047 [details]
logs and sigsegv
(In reply to Alexandra Parker from comment #2) > Created attachment 859047 [details] > logs and sigsegv Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault. 0x00005555555a66fb in translated_city_name (loc=0x0) at ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:388 388 zone_translated = g_strdup (dgettext (GETTEXT_PACKAGE_TIMEZONES, loc->zone)); (gdb) bt #0 0x00005555555a66fb in translated_city_name (loc=0x0) at ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:388 #1 update_timezone (self=0x555555d6ebc0) at ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:411 loc is null already there. I assume your timezone is definitely set? (Obviously this is wrong even if it's not though.) (In reply to Sam James from comment #4) > (In reply to Alexandra Parker from comment #2) > > Created attachment 859047 [details] > > logs and sigsegv > > > Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault. > > 0x00005555555a66fb in translated_city_name (loc=0x0) at > ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:388 > > 388 zone_translated = g_strdup (dgettext (GETTEXT_PACKAGE_TIMEZONES, > loc->zone)); > > (gdb) bt > > #0 0x00005555555a66fb in translated_city_name (loc=0x0) at > ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:388 > > #1 update_timezone (self=0x555555d6ebc0) at > ../gnome-control-center-44.0/panels/datetime/cc-datetime-panel.c:411 > > > loc is null already there. I assume your timezone is definitely set? > (Obviously this is wrong even if it's not though.) I have an /etc/localtime, which gnome-control-center reads. You can see this function knows my current timezone because it prints it out. It then sets self->current_location to null but I don't understand why: https://gitlab.gnome.org/GNOME/gnome-control-center/-/blob/44.0/panels/datetime/cc-datetime-panel.c#L422 Oh, it's because self->timezone_dialog is null, and this getter method on the timezone dialog returns null for a null "self": https://gitlab.gnome.org/GNOME/gnome-control-center/-/blob/44.0/panels/datetime/cc-tz-dialog.c#L321 (In reply to Sam James from comment #3) > https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1742 > maybe? Yes! That fixes it. Is there something I can read that explains why upstream didn't notice this but Gentoo did? Is it because Gnome is expecting to build with -Wl,--export-dynamic? https://gitlab.gnome.org/GNOME/gtk/-/issues/2788 If I remove the patch and make an /etc/portage/env file that adds LDFLAGS="$LDFLAGS -Wl,--export-dynamic", gnome-control-center doesn't crash. However, this seems like a heavy-handed approach when there are macros specifically to ensure symbols end up exported. (In reply to Alexandra Parker from comment #7) > (In reply to Sam James from comment #3) > > https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1742 > > maybe? > > Yes! That fixes it. Is there something I can read that explains why upstream > didn't notice this but Gentoo did? yay! At first, I was wondering if this is to do with glib-2.76 becoming stricter, but that's gfileinfo only: https://gitlab.gnome.org/GNOME/glib/-/commit/4cad66580b698e01d196cddc3b9950940a41fee9. So it's not that. Now I'm wondering if it's new Vala instead (>=0.56.4), or another change in glib-2.76? (In reply to Alexandra Parker from comment #8) > Is it because Gnome is expecting to build with -Wl,--export-dynamic? > > https://gitlab.gnome.org/GNOME/gtk/-/issues/2788 > > If I remove the patch and make an /etc/portage/env file that adds > LDFLAGS="$LDFLAGS -Wl,--export-dynamic", gnome-control-center doesn't crash. > However, this seems like a heavy-handed approach when there are macros > specifically to ensure symbols end up exported. Interesting... I have added some more to the MR. The old README.glade link in the GTK issue makes it clear they are needed before gtk_container_init_template. There was already a mix of putting them in panel_class_init and panel_init in gnome-control-center which I haven't resolved. We'll see. So I guess this is bug 695326 reincarnated? At least for me version 44.1 behaves normally I cannot reproduce with any of the current versions in the tree, can you check again? Thanks |