After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 605505 - "Status icon" plugin causes severe lag when switching songs
"Status icon" plugin causes severe lag when switching songs
Status: RESOLVED NOTGNOME
Product: rhythmbox
Classification: Other
Component: Plugins (other)
0.12.x
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-12-26 23:10 UTC by Infinity Zero
Modified: 2010-06-22 15:58 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Infinity Zero 2009-12-26 23:10:19 UTC
A significant fraction (between 1/2 and 1/8) of the times when rhythmbox switches songs (either automatically, or manually through the GUI or global keyboard shortcuts), rhythmbox hangs and either

- the UI goes blank, and I need to just sit it out; or
- it moves onto the song without playing it, and I can fix this by clicking twice onto the playback slider. (once doesn't work).

This behaviour hadn't always occurred, so I couldn't figure out for ages what was causing it. Then I had an idea of disabling the plugins, and seeing if this behaviour still occurred. It didn't. So by trial-and-error, I eventually worked out that the "status icon" plugin is the culprit.

I don't know if this is reproducible on other machines; however, on my computer:

- I have about 5000 songs in the library, and about 25 playlists.
- Rhythmbox 0.12.6 from Debian

When "status icon" plugin is disabled (and after restarting rhythmbox), I can switch songs about 50 times in succession without any significant lag. (50 times is all I tried before I got bored.)

When "status icon" plugin is enabled, if I keep switching songs, at some point (well before 50 switches), the aforementioned lag will occur.

I tried this with several (but not all possible) different settings of the plugin config; results were same for each.
Comment 1 Jonathan Matthew 2009-12-27 22:42:44 UTC
I can't reproduce this.  If you could provide a stack trace from when rhythmbox has hung, that would probably help.
Comment 2 Infinity Zero 2009-12-28 11:43:04 UTC
This is when rhythmbox starts up (with "start icon" enabled):

libnotify-Message: GetCapabilities call failed: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

When the UI hangs, this pops up when it unhangs:

(rhythmbox:24627): Rhythmbox-WARNING **: Failed to send notification ([song name]): Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

`pkill rhythmbox` still works during this time (no need for -9)

will get a stack trace when i figure out how...
Comment 3 Infinity Zero 2009-12-28 11:51:49 UTC
and yes i do have notification-daemon installed. i also tried it with notification-daemon-xfce; same results.
Comment 4 Jonathan Matthew 2009-12-28 12:07:49 UTC
Do other notifications show up properly?  What happens if you run 'notify-send foo'?
Comment 5 Infinity Zero 2009-12-28 12:50:18 UTC
i don't have the 'notify-send' command - which package has it?

i've figured out that to "fix" the behaviour temporarily, kill the notification-daemon[1]. rhythmbox will then automatically spawn a new one, which is responsive.

i'm still trying to figure out a reliable way of triggering it, though. i can sometimes trigger it by running "notification-properties" and clicking the "preview" button, which will sometimes hang notification-properties, and then afterwards rhythmbox will hang when trying to display a notification.

[1] for some stupid reason "pkill notification-daemon" doesn't work due to the -, and \- doesn't work ether
Comment 6 Infinity Zero 2009-12-28 12:59:16 UTC
right, i think i've got it:

0. kill any existing "notification-daemon" process
1. start rhythmbox with "status icon" plugin enabled, with config option "display notifications = always"
2. play songs and switch through a few. rhythmbox should spawn a new "notification-daemon" and notifications should appear.
3. start "notification-properties" **from the terminal**.
4. click "preview". this will either display a notification, or hang.
4.1. if it doesn't hang, close the program and repeat from (3).
4.2. if it does hang, terminate it with ctrl-C.
5. switch songs in rhythmbox. it should now hang.
6. if you kill the "notification-daemon", rhythmbox will immediately unhang and play the next song, spawn a new daemon and display a notification.
Comment 7 Jonathan Matthew 2009-12-28 13:00:36 UTC
notify-send is in the libnotify-bin package.
Comment 8 Infinity Zero 2009-12-28 13:17:49 UTC
seems like you can do steps 3 to 4.2 without rhythmbox running at all, and it
will still hang when you start it up (i guess because it's using the same
daemon that's broken).

i suppose this is more of a notification-daemon bug, then. it would be nice if
rhythmbox could detect the broken ones and automatically restart them, but i
realise this is somewhat problematic and out of the scope of this program...
Comment 9 Jonathan Matthew 2009-12-28 13:29:04 UTC
That would be implemented in libnotify anyway.

Anyway, you should file a bug about this in the notification-daemon bug tracking system here: http://galago-project.org/
Comment 10 Serge Gavrilov 2010-06-22 15:58:16 UTC
Could be a duplicate of bug #622409