https://bugs.kde.org/show_bug.cgi?id=422111

--- Comment #66 from Sam Edwards <cfswo...@gmail.com> ---
I think we're off to a false start by looking at powerdevil (although it may be
useful to know WHY this happens)

I added a bunch of debug messages to
applets/systemtray/dbusserviceobserver.cpp. When this issue happens, the
"org.kde.Solid.PowerManagement" service is absent from the list(s) processed in
DBusServiceObserver::serviceNameFetchFinished(), but present in the list output
from qdbus; I also get a serviceUnregistered() for it when I kill powerdevil.

When restarting plasmashell, it comes back up during a time when the
PowerManagement service is already registered, so it appears in the service
list, and the battery applet appears.

When restarting powerdevil, plasmashell receives the service-registered event
when PowerManagement is re-registered, and the battery applet appears.

The following are always present in the serviceNameFetchFinished lists, whether
the issue happens or not: "org.kde.powerdevil.chargethresholdhelper",
"local.org_kde_powerdevil", "org.kde.powerdevil.discretegpuhelper",
"org.kde.powerdevil.backlighthelper"

So, powerdevil is alive at the time the systemtray initializes, but (probably
because it's delayed by a few ms to talk to logind) hasn't registered the
PowerManagement service yet; it instead gets registered during a time that, for
some reason, the QDBusServiceWatcher doesn't report it.

The serviceRegistered callback is working normally prior to the call to
initDBusActivatables, as well as after both lists are returned. On a launch
where the issue doesn't happen, the PowerManagement service shows up right
after the lists are processed. Is there perhaps some window where the
QDBusPendingCallWatcher is temporarily paused (or some bug with DBus itself)
where the systemtray is momentarily blind to new services, and the issue
happens because powerdevil is delayed just enough to register PowerManagement
during that blind period?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to