[ksld] Don't unset greeter connection on destroy unconditionally
ClosedPublic

Authored by graesslin on Mar 10 2017, 6:03 PM.

Details

Summary

If the greeter exits the Wayland connection gets destroyed and a new
greeter with a new Wayland connection gets created. As the destroying
of the Wayland connection is async it can happend that the destroy
signal is emitted after the new connection is created. So far our code
unconditionally reset the connection on destroy which resulted in KWin
not being able to recognize the new greeter and only presenting a black
screen. After unlock with loginctl unlock-session the session shows a
dead greater window. Which can be explained by the connection never
getting destroyed.

This change verifies that the greeter connection is actually the one
which is currently in use. If the greeter dies the new greeter is shown
properly in the Wayland session and no dead greeter is shown after
unlock.

BUG: 377152

Test Plan

killed kscreenlocker_greet 6 times, always properly restarted

Diff Detail

Repository
R133 KScreenLocker
Branch
ksld-greeter-destroyed
Lint
No Linters Available
Unit
No Unit Test Coverage
graesslin created this revision.Mar 10 2017, 6:03 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMar 10 2017, 6:03 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
mart accepted this revision.Mar 15 2017, 12:37 PM
This revision is now accepted and ready to land.Mar 15 2017, 12:37 PM
This revision was automatically updated to reflect the committed changes.