Red Hat Bugzilla – Bug 570251
Notifications sent by some applications cause hangs
Last modified: 2013-03-05 23:01:34 EST
Created attachment 397611 [details]
Log of dbus messages
Description of problem:
Notifications sent by some application hang the system for some time.
Version-Release number of selected component (if applicable):
For testcase indicated below, always.
Steps to Reproduce: Testcase:
1. Start firefox
2. Choose a file to download which will take at least 20-30 sec to download, then rightclick the link and choose "Save link as..."
3. File downloads as usual
4. When the "Download Complete" notification should appear, the system hangs instead for 15-20s. Afterward, the notification appears as expected.
For the described testcase, as soon as one expects the notification to appear, most or all of the gui widgets are unresponsive, terminal occasionally still grabs keyboard input. Mouse keeps moving, and also applets in the panel get updated (clock, netspeed). Can switch to virtual terminal via CTRL+ALT+F*, there I can write killall notification-daemon and the system returns responsive immediately.
Should not hang. It is possibly the application's fault that it sends "bad" notifications, but this should not cause the whole system to hang.
I managed to narrow down the issue in firefox (both stock 3.58.fc12 as well ass nightly minefield 3.7a3), but it is not the only application that sends "bad" notifications, banshee is another one for instance. On the other hand there are other applications where notifications always work flawlessly, say emesene or even manual /usr/bin/notify-send.
Attached is the dbus log, messages are from the period between when I started the download and until the notification eventually appeared.
Created attachment 408641 [details]
dbus example from emesene
Some additional information: it appears some applications send the icon which appears in the notification as binary array to the dbus channel. These arrays can often have 10'000 or more entries. Could it be that this amount of data occasionally causes other applications monitoring the dbus channel to hang while they interpret the data? I cannot reproduce the issue sending notifications via notifiy-send -i <icon> ... but on the other hand notifications send this way don't also send the icon in binary on the dbus. Attached is an example of the dbus messages caused by a simple <user sent a message> notification from emesene. (Finally, why would the icons want to get sent over dbus anyway?)
Never got this issue on F13, closing...