gBar
gBar copied to clipboard
Unkown segmentation fault (removing tray icon?)
I exited slack from tray, which caused gBar to get a segmentation fault.
Can't really reproduce.
Steps to Reproduce Click on slack icon, and select quit.
Expected behavior Slack quits. gBar stays open.
Screenshots/Error logs SNI: Add org.kde.StatusNotifierItem-1702-1 to widget SNI: Add org.kde.StatusNotifierItem-1704-1 to widget PulseAudio: Update info PulseAudio: Update info 0x561d4571d070
(gBar:33073): LIBDBUSMENU-GLIB-CRITICAL **: 11:44:38.866: dbusmenu_menuitem_send_about_to_show: assertion 'DBUSMENU_IS_MENUITEM(mi)' failed /com/canonical/dbusmenu click
(gBar:33073): Gtk-CRITICAL **: 11:44:38.873: gtk_widget_set_accel_path: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
(gBar:33073): Gtk-CRITICAL **: 11:44:38.873: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed 0x561d67069ab0
(gBar:33073): LIBDBUSMENU-GLIB-CRITICAL **: 11:44:50.631: dbusmenu_menuitem_send_about_to_show: assertion 'DBUSMENU_IS_MENUITEM(mi)' failed /com/canonical/dbusmenu click
(gBar:33073): Gtk-CRITICAL **: 11:44:50.637: gtk_widget_set_accel_path: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
(gBar:33073): Gtk-CRITICAL **: 11:44:50.637: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed SNI: :1.121 vanished! SNI: Clearing old children
(gBar:33073): Gtk-CRITICAL **: 11:44:51.649: gtk_widget_remove_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed Destroy widget
(gBar:33073): Gtk-CRITICAL **: 11:44:51.651: gtk_widget_destroy: assertion 'GTK_IS_WIDGET (widget)' failed SNI: Add :1.10 to widget SNI: Add :1.16 to widget SNI: Add :1.214 to widget SNI: Add :1.222 to widget SNI: Add :1.6 to widget SNI: Add :1.63 to widget SNI: Add :1.9 to widget SNI: Add org.kde.StatusNotifierItem-1702-1 to widget SNI: Add org.kde.StatusNotifierItem-1704-1 to widget SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 SNI: Cannot remove unregistered bus name :1.121 zsh: segmentation fault (core dumped) gBar bar 0 Information about your system and gBar
- OS: Arch
- Desktop environment: Hyprland
- commit 09ec1bfab660fddeb561bd34a7453a8e2a78db11
Very strange...
I too notice random crashes, but cannot pin point them to anything.
Can you open the crash dump with gdb and run bt
, so I know what to look for?
Okay, the wall of SNI: Cannot remove unregistered bus name xxx
should now be fixed. I don't know whether this was the cause of the crash, though, so the crash dump is still appreciated.
I can get you the dump over the weekend (its on my work laptop).
I may or may not have the same error. One reliable way for me to break it is by loading syncthingtray and starting gBar as a systemd service. I can also break it when starting gBar from the shell and interacting with any icon. I then get a similar behavior as @kragebein . When I start from systemd however it segfaults "cleanly" and I get a better log for whats happening.
I think the problem is similar to a problem that happens with the tray icon support in developement for eww. It has been adressed in this PR. Apparently we need to disable caching for IconName as per https://dbus2.github.io/zbus/faq.html#why-arent-property-values-updating-for-my-service-that-doesnt-notify-changes, as well as for the IconPixmap property. I don't know how this translates to C++ though.
The logs point towards a crash in gtk_widget_destroy
(although the LOG I do before calling gtk_widget_destroy
is not there, which is a bit weird). So this seems to be like there is some sort of memory corruption or double-free going on (Even though gtk_widget_destroy
should check against that). Unfortunately I still can't reproduce this even with systemd + syncthingtray and valgrind also doesn't show something suspicous. So I'm out of ideas as to what can fix this.
I don't think this is similar to the linked PR, since the caching is something related to the library used, which I don't use (I use gio)