Re: Why org.freedesktop.DBus.Local.Disconnected is called?
Sheng Mao <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <[email protected]> |
Hi Thiago, Thank you for the suggestion! I should have come back and update my findings. In my case, dbus disconnection is caused by 99-restart-dbus.sh <https://src.fedoraproject.org/rpms/kde-settings/blob/34266bc9b362b3db9f0ef5c7e4a3d0154a02f8a9/f/99-restart-dbus.sh> in Fedora 33 plasma-workspace, which is added recently. This script is triggered by plasma-shutdown and it restarts dbus-broker after 8 seconds. But for kwin_x11 itself, it never exits, as XCB_SELECTION_CLEAR is never triggered. I am working on merge request !438 <https://invent.kde.org/plasma/kwin/-/merge_requests/438> to find a better solution to terminate kwin_x11 before dbus gets restarted (or never restarted). Thank you for your help! > On Nov 11, 2020, at 21:32, Thiago Macieira <[email protected]> wrote: > > On Sunday, 8 November 2020 08:16:37 PST Sheng Mao wrote: >> Thank you for explaining this, Thiago! >> >> Then it means the unregistration code kwin_x11 will not be executed. >> Although I still don’t know who/why terminates the session but it is >> something I can use. > > You can debug to find out the order in which events are happening. Does > kwin_x11 exit before the dbus-daemon exits? Or does the daemon exit first, > thus causing kwin_x11 to quit? > > And is there sufficient time for dbus-daemon to notice other applications' > exit and send service name deregistration signals? If all the processes are > terminated too quickly, dbus-daemon may react to its termination before > handling all the sockets. > >> * in kwin_x11, I need to add a watcher for session disconnected, and close >> kwin_x11 event loop on that >> * in startkde, I need to add a timer to query registration status. My test >> app shows that the service becomes unregistered after a few seconds. >> QDBusServiceWatcher cannot send a unregistration event/signal if >> org.kde.KWin is terminated passively. >> >> Thank you! I will do more tests on that. > > You should simply react to the Disconnected signal and handle that as a > deregistration of every single service name. > > Note you can't send anything to D-Bus any more. > > -- > Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org > Software Architect - Intel DPG Cloud Engineering > > > > _______________________________________________ > dbus mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/dbus _______________________________________________ dbus mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dbus