Comment 14 for bug 1192051

Revision history for this message
Christopher Townsend (townsend) wrote :

Ok, after a couple of false starts on root causing this, I believe I found the issue causing the spin:)

- In the Xmir startup, nothing is calling "plymouth quit", so that is why plymouthd keeps running. I know this because I enabled logging in both Xmir and X only, and in X only, I can see a call to "plymouth quit" whereas in the Xmir version, no such call is logged.
- Fir x only, the call to "plymouth quit" comes from a signal from the X server indicating that it has started. This is in the lightdm source in src/xserver-local.c in the got_signal_cb() function.
- In Xmir, the compositor is responsible for deactivating/quitting plymouth.
- The compositor handling of plymouth in lightdm is a bit lacking on the quitting part.

To test my findings, I created a package that reverted the changes in lp:~vanvugt/lightdm/fix-1192051. I then added some code in seat-unity.c that handles "plymouth quit". In my test, plymouth is no longer running on log in and no crash of plymouthd is observed.

I'm going to propose this change to the Mir version of lightdm and try to see about getting it upstream into lightdm. Also, plymouth is really not a fault here so I'll probably remove it from this bug.