Bug 377152

Summary: [Wayland] Resuming session after screen lock results in black screen
Product: [Plasma] kscreenlocker Reporter: tromzy
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: bhush94, bugseforuns, heri+kde, mgraesslin, mlt, sandy.8925
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description tromzy 2017-03-03 10:01:33 UTC
I tried to lock and unlock screen on a Wayland sesssion. Lock worked, but then I entered my password and pushed Enter and then all I got was a black screen. I could not even go to a different tty.
Comment 1 Patrick Silva 2017-03-05 01:02:38 UTC
This happened on my Arch today.
Comment 2 Martin Flöser 2017-03-16 18:34:57 UTC
Git commit 06917c1253eb644e139c28427f4fc4b8f3e0a41b by Martin Gräßlin.
Committed on 16/03/2017 at 18:34.
Pushed by graesslin into branch 'master'.

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

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.

Test Plan: killed kscreenlocker_greet 6 times, always properly restarted

Reviewers: #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D5008

M  +4    -1    ksldapp.cpp

https://commits.kde.org/kscreenlocker/06917c1253eb644e139c28427f4fc4b8f3e0a41b
Comment 3 Martin Flöser 2017-03-18 16:59:25 UTC
*** Bug 377513 has been marked as a duplicate of this bug. ***
Comment 4 Sandeep 2017-05-07 03:53:25 UTC
Hello, I was wondering if/when this fix will be released in a stable version?

I am using 5.9.5, and I am still facing this bug.
Comment 5 Martin Flöser 2017-05-07 07:04:31 UTC
It will be released in 5.10
Comment 6 Martin Flöser 2017-05-07 07:40:23 UTC
*** Bug 379597 has been marked as a duplicate of this bug. ***
Comment 7 Dennis Schridde 2017-05-20 12:56:49 UTC
A workaround is to login to another VT and run `loginctl unlock-session <session ID>` (you'll find the session ID by running `loginctl`). When you switch back to the graphical VT, you'll see the lock screen in a window, which you cannot close. You can, however kill the process using CTRL+ALT+ESC and then clicking the lock-screen-window using the read skull mouse cursor.