Comment 19 for bug 716167

Revision history for this message
Bill Filler (bfiller) wrote :

So this is figured out. What was happening was the launcher and panel processes were being destroyed before the handshake with gnome session manager was being initiated or finished.

Here is the sequence of messages on logout between gnomesessionclient.cpp and gnome-session via dbus
- client receives QueryEndSession signal from org.gnome.SessionManager.ClientPrivate
- client calls EndSessionResponse on same dbus interface
- client receives EndSession() signal
- client calls EndSessionResponse

If any this sequence does not complete, different results happen depending on where in the process it was interrupted.

There were two cases:
1) process killed before QueryEndSession signal received: in this case we'd get the "Unknown process" dialog
2) process killed after QueryEndSession but before EndSession(): in this case we'd encounter the 10 second delay before logout (bug 706248)

agateau has come up with an awesome fix, to not exit the main loop until we are finished processing the logout events. this has been tested and fixed both bugs.
The branch is here and will be committed soon:
lp:~agateau/unity-2d/wait-for-end-session