Code review comment for lp:~townsend/lightdm/fix-plymouthd-spin

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

@Daniel,

Thanks for looking over this. I also thought deactivate was a more graceful way of shutting down plymouth, but I've looked through the plymouth code and basically all deactivate does is stop displaying the splash screen. There is no code in the deactivate path to kill the plymouthd process.

Also, when using the X only setup, "plymouth quit" is indeed called by xserver-local in lightdm and this is what kills off the plymouthd process. So what I did is took how xserver-local handles that and apply it to when the compositor is handling the plymouth duties. I think this is a bug in upstream lightdm as well, but it was undiscovered since xserver-local has been handling these duties until now.

The reason your workaround appeared to work is that is actually caused plymouthd to segfault. After the first deactivate is done, some pointers are NULLed out and the subsequent call to deactivate dereferences the null pointer. I think that is a bug as well, but not this bug we are trying to fix:)

I hope this helps explain my findings and rationale for this MP. I also put a bit more detail in the bug itself about this.

« Back to merge proposal