GNOME Bugzilla – Bug 121760
rhythmbox's warnings when the panel restart
Last modified: 2005-06-11 12:00:06 UTC
Distribution: Debian testing/unstable Package: rhythmbox Severity: critical Version: GNOME2.3.90 HEAD Gnome-Distributor: GARNOME Synopsis: rhythmbox doesn't survive a gnome-panel restart Bugzilla-Product: rhythmbox Bugzilla-Component: Interface Bugzilla-Version: HEAD BugBuddy-GnomeVersion: 2.0 (2.4.0) Description: Description of the crash: rhythmbox doesn't survive a gnome-panel restart. the try icon doesn't get redisplayed when panel comes back up, and rhyhtmbox crashes upon next song change. interestingly the sound is still running as i type out this bug report Steps to reproduce the crash: 1. killall gnome-panel 2. wait for song to end playing 3. watch it bomb Expected Results: tray icon gets refreshed and rb doesn't crash How often does this happen? everytime Additional Information: garnome 0.26.2 rhythmbox 0.5.3 which isn't selectable in zilla Debugging Information: Backtrace was generated from '/usr/local/gar262/bin/rhythmbox' [New Thread 16384 (LWP 30176)] [New Thread 32769 (LWP 30181)] [New Thread 16386 (LWP 30182)] [New Thread 32771 (LWP 30183)] [New Thread 131077 (LWP 30248)] 0x40c97b89 in wait4 () from /lib/libc.so.6
+ Trace 40038
Thread 3 (Thread 16386 (LWP 30182))
Thread 1 (Thread 16384 (LWP 30176))
------- Bug moved to this database by unknown@bugzilla.gnome.org 2003-09-08 12:15 ------- Reassigning to the default owner of the component, rhythmbox-maint@bugzilla.gnome.org.
This bug is two-fold. First, you need to catch the destroy signal on the eggtrayicon, so that you can recreate the icon if the notification area has been destroyed (panel crash/restart) Second, you need to check that the tray icon exists before manipulating it :)
Created attachment 19813 [details] [review] something like that...
proposed patch worked for me.
nevermind that. proposed patch solved the tray icon refreshing upon panel restart, but disabled 'next' 'prev' and 'pause' buttons in tray menu. 'show window' as well as left/right clicking tray window still works.
This patch doesn't seem to help - I get: (rhythmbox:14290): Gdk-WARNING **: GdkWindow 0x2c00028 unexpectedly destroyed Program received signal SIGINT, Interrupt.
+ Trace 40272
Thread 16384 (LWP 14290)
*** Bug 123333 has been marked as a duplicate of this bug. ***
there's also a small variation on this problem that should be addressed: if rhythmbox is in the session, it sometimes starts =before= the panel does, and you get a similar problem.
*** Bug 124473 has been marked as a duplicate of this bug. ***
*** Bug 124718 has been marked as a duplicate of this bug. ***
*** Bug 124462 has been marked as a duplicate of this bug. ***
*** Bug 127099 has been marked as a duplicate of this bug. ***
*** Bug 127997 has been marked as a duplicate of this bug. ***
*** Bug 130039 has been marked as a duplicate of this bug. ***
*** Bug 130277 has been marked as a duplicate of this bug. ***
*** Bug 130515 has been marked as a duplicate of this bug. ***
*** Bug 134765 has been marked as a duplicate of this bug. ***
Walters: fwiw, the (rhythmbox:14290): Gdk-WARNING **: GdkWindow 0x2c00028 unexpectedly destroyed warning happens with the two apps (gnomeicu and gossip) using the notification area I tested.
*** Bug 137171 has been marked as a duplicate of this bug. ***
gaim seems to handle this nicely... i'll look into this bug, inspect the gaim system tray plugin and see what they're doing with notification area destruction.
Colin, I believe this patch is correct, and it doesn't create anymore warnings than the other users of the icon tray would. In the worst case, a warning is better than a crash...
Ok, I forgot there was a patch here, thanks for reminding me :) * committed rhythmbox-devel@gnome.org--2004/rhythmbox--main--0.8--patch-50 We should try to figure out how to fix the warnings and get it to come back after a restart though.
still here with 0.8.8 on debian unstable
(Actually Seb doesn't have the problem, I do, but I couldn't reopen the bug. Seb is in full 2.8 Gnome, and Debian has a mix-up of 2.6 of 2.8, mainly 2.6, and the bug is still there.) -- Loic Minier
*** Bug 155297 has been marked as a duplicate of this bug. ***
Please add dependency on bug 155509.
bug 155509 is a different problem, more general IMHO. Here rhythmbox _exits_ when the NA is removed. Regards, -- Loic Minier
With current 0.8.8 (Debian sid 0.8.8-1), you can remove the notification area from the panel, but when you close rhythmbox, you get: (rhythmbox:4442): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget' (rhythmbox:4442): Gtk-CRITICAL **: file gtkwidget.c: line 2041 (gtk_widget_hide): assertion `GTK_IS_WIDGET (widget)' failed (rhythmbox:4442): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkWidget' (rhythmbox:4442): Gtk-CRITICAL **: file gtkwidget.c: line 1911 (gtk_widget_destroy): assertion `GTK_IS_WIDGET (widget)' failed
These are triggered by lines 700 and 708 of shell/rb-shell.c in rb_shell_finalize: gtk_widget_hide (GTK_WIDGET (shell->priv->tray_icon)); ... gtk_widget_destroy (GTK_WIDGET (shell->priv->tray_icon)); I have no idea how one is supposed to listen to get the notification area removal message.
Loïc, do you still get the issue ? Seems to work fine here ...
Indeed, everything works fine now. Might it be a new panel version? (Debian is now in full 2.8.) I get some warnings though: bee% rhythmbox (rhythmbox:5383): Gdk-WARNING **: GdkWindow 0x3a00021 unexpectedly destroyed (rhythmbox:5383): Gdk-WARNING **: GdkWindow 0x3a0001f unexpectedly destroyed (rhythmbox:5383): Gdk-WARNING **: GdkWindow 0x3a0001e unexpectedly destroyed (rhythmbox:5383): Gdk-WARNING **: GdkWindow 0x3a0001c unexpectedly destroyed (rhythmbox:5383): Gdk-CRITICAL **: file gdkevents-x11.c: line 2386 (gdk_x11_get_server_time): assertion `!GDK_WINDOW_DESTROYED (window)' failed
Perhaps a panel issue yep. BTW since it doesn't crash I'm changing the severity to minor and updating the summary.
Created attachment 39277 [details] [review] or something like this I still see this from time to time (using current debian gnome 2.8). Looks to me like the "destroy-event" notification is never received (GTK documentation says "You rarely get this signal, because most widgets disconnect themselves from their window before they destroy it, so no widget owns the window at destroy time.") so I tried the GtkObject "destroy" signal instead, which works for me. This doesn't fix the GDK warnings, but it does clean up references to destroyed objects, which are a great way to suffer random crashes at random points in the future if you like that sort of thing. Patch is against 0.9; doesn't apply cleanly to 0.8, but the merge is trivial.
We now only get warnings when the notification area applet crashes, not when it's simply removed. 2005-06-06 Bastien Nocera <hadess@hadess.net> * shell/rb-shell.c: (rb_shell_construct), (tray_destroy_cb): Patch by jonathan@kaolin.hn.org to avoid crashes when the notification area disappears (Closes: #172224, #172225)