Skip to content

Add an event loop locker round all session related DBus calls

David Edmundson requested to merge work/logout_dbus into master

There is a bug found in the logout prompt dialog. It would send the call to plasma-shutdown then quit. plasma-shutdown is DBus activated and then controls the rest of the session close.

This works great on paper. In practice dbus-daemon may discard a method call if a caller quits before the recipient is registered. https://gitlab.freedesktop.org/dbus/dbus/-/issues/72

We hit a similar issue before with logind checking the caller, so this patch tries to solve everything in a common way through an event loop locker.

It also is may prove useful to have generic error handling on all the DBus calls.

This meant plasma-shutdown a headless tool needs porting to use event loop lockers rather than calling qApp->quit.

BUG: 432460

Merge request reports