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 753309 - NameOwnerChanged must be specific
NameOwnerChanged must be specific
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2015-08-06 08:42 UTC by Daniel Mack
Modified: 2016-03-03 21:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
manager: get rid of global NameOwnerChanged handler (32.38 KB, patch)
2016-03-03 21:09 UTC, Ray Strode [halfline]
committed Details | Review

Description Daniel Mack 2015-08-06 08:42:30 UTC
gnome-session seems to install matches for NameOwnerChanged signals without being specific about what to track. Such signals are sent every time a client connects to the bus, so the application is woken up on each occasion. That doesn't scale and should be fixed, so only peers gnome-session is really interested in are tracked.
Comment 1 Daniel Mack 2015-08-06 14:57:24 UTC
Sorry, this is about gnome-shell.
Comment 2 Ray Strode [halfline] 2015-08-06 15:22:52 UTC
hmm, are you sure this is about gnome-shell? i don't see that in a brief look in the code, but I do see it for gnome-session in the code.
Comment 3 Daniel Mack 2015-08-06 15:44:31 UTC
I've seen gnome-shell raising its load significantly when the bus is put under stress by connect/disconnect loops. In any case, no component should install unspecific NameOwnerChanged matches.
Comment 4 Ray Strode [halfline] 2016-03-03 21:09:41 UTC
Created attachment 323025 [details] [review]
manager: get rid of global NameOwnerChanged handler

Listening for NameOwnerChanged on the bus is costly, since it means
waking up basically any time any program is started or exists.

This commit changes the code to instead create individual watches,
instead of one global watch.
Comment 5 Ray Strode [halfline] 2016-03-03 21:10:22 UTC
Attachment 323025 [details] pushed as 79ab4f2 - manager: get rid of global NameOwnerChanged handler