Bug 351696 - kscreenlocker_greet crashes and respawns consuming 100% cpu
Summary: kscreenlocker_greet crashes and respawns consuming 100% cpu
Status: RESOLVED FIXED
Alias: None
Product: ksmserver
Classification: Plasma
Component: lockscreen (show other bugs)
Version: 5.2.90
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: David Edmundson
URL:
Keywords:
: 350329 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-08-24 13:46 UTC by Michael Harnden
Modified: 2015-08-25 12:54 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Harnden 2015-08-24 13:46:39 UTC
Multiuser desktop with;
openSUSE 13.2
NVidia 352.30
plasma-workspace 5.3.95

After starting the pc, everything works fine for a while. Awhile is sometimes days, sometime hours. When attempting to switch users, the user will just get a black screen with a cursor. The audit log will fill with:
type=ANOM_ABEND msg=audit(1440388649.244:69685): auid=1001 uid=1001 gid=100 ses=120 pid=24103 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388650.265:69686): auid=1001 uid=1001 gid=100 ses=120 pid=24109 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388651.236:69687): auid=1001 uid=1001 gid=100 ses=120 pid=24115 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388652.205:69688): auid=1001 uid=1001 gid=100 ses=120 pid=24121 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388653.174:69689): auid=1001 uid=1001 gid=100 ses=120 pid=24127 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388654.190:69690): auid=1001 uid=1001 gid=100 ses=120 pid=24133 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388655.250:69691): auid=1001 uid=1001 gid=100 ses=120 pid=24139 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388656.219:69692): auid=1001 uid=1001 gid=100 ses=120 pid=24145 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388657.187:69693): auid=1001 uid=1001 gid=100 ses=120 pid=24151 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388658.162:69694): auid=1001 uid=1001 gid=100 ses=120 pid=24157 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388659.133:69695): auid=1001 uid=1001 gid=100 ses=120 pid=24163 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11
type=ANOM_ABEND msg=audit(1440388660.102:69696): auid=1001 uid=1001 gid=100 ses=120 pid=24169 comm="QSGRenderThread" exe="/usr/lib64/libexec/kscreenlocker_greet" sig=11

pkill -u on the user that has the kscreenlocker_greet crashing will  make plasma useable again for a while.

Reproducible: Always

Steps to Reproduce:
1. Start plasma session
2. Start new session as other user
3. Use computer until kscreenlocker_greet starts crashing

Actual Results:  
kscreenlocker_greet consume 100% of cpu, unable to switch users

Expected Results:  
Switch user as desired

I am mounting two nfs shares with the following options

nfsvers=3,intr,rsize=8192,wsize=8192,soft,timeo=60,_netdev  0 0
nfsvers=4,intr,rsize=8192,wsize=8192,soft,timeo=60,_netdev 0 0
Comment 1 Martin Flöser 2015-08-25 07:53:17 UTC
*** Bug 350329 has been marked as a duplicate of this bug. ***
Comment 2 Martin Flöser 2015-08-25 09:17:46 UTC
Possible fix: https://git.reviewboard.kde.org/r/124915/
Comment 3 Martin Flöser 2015-08-25 12:54:46 UTC
Git commit 5e2f4016dced0af61f5d2817d8eac0cfef3ad52b by Martin Gräßlin.
Committed on 25/08/2015 at 10:36.
Pushed by graesslin into branch 'master'.

[screenlocker] Add emergency mode for greeter crashing

If the greeter crashes on startup ksld is caught in a restart loop which
causes 100 % CPU usage and makes it impossible to unlock the session.

With this change the greeter is only allowed to crash four times and
ksld goes into an emergency mode. This mode ensures that our black
background window gets shown with a message indicating how to unlock
using loginctl. This is rather technical but better than leaving the
system in a state which makes it impossible to unlock.

Directly unlocking in the error case is not an option as that could
be used to attack the screen locker infrastructure.
REVIEW: 124915

M  +1    -0    ksmserver/screenlocker/autotests/CMakeLists.txt
M  +13   -3    ksmserver/screenlocker/ksldapp.cpp
M  +1    -0    ksmserver/screenlocker/ksldapp.h
M  +32   -0    ksmserver/screenlocker/lockwindow.cpp
M  +5    -0    ksmserver/screenlocker/lockwindow.h
M  +1    -1    ksmserver/screenlocker/tests/CMakeLists.txt

http://commits.kde.org/plasma-workspace/5e2f4016dced0af61f5d2817d8eac0cfef3ad52b