Bug 378486

Summary: KWin crashes after unlocking locked session
Product: [Plasma] kwin Reporter: Rodrigo <rmsilva>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash Keywords: drkonqi
Priority: NOR    
Version: 5.8.6   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: KWin support information

Description Rodrigo 2017-04-06 04:04:21 UTC
Application: kwin_x11 (5.8.6)

Qt Version: 5.7.1
Frameworks Version: 5.32.0
Operating System: Linux 4.10.8-200.fc25.x86_64 x86_64
Distribution: "Fedora release 25 (Twenty Five)"

-- Information about the crash:
- What I was doing when the application crashed:
Desktop is set to lock after 5 min, require password after 35secs. Sometimes unlocking works as expected; sometimes KWin crashes (and restarts) after unlocking. Other times the desktop is completely messed up with with ever changing shapes (squares, triangles) containing distorted (zoomed, shifted) application windows contents.  In this scenario, unlocking does not work by entering the password. It is necessary to log into another tty and issue an "loginctl unlock-sessions" in order for the session to be usable again. After manual unlock as root, I can return to X and session is correctly restored.
- Unusual behavior I noticed:

- Custom settings of the application:
System running NVIDIA proprietary drivers (378.13). Fedora 25 with linux 4.10.8-200. 4K display using DP connector. This behavior (especially the messed up lock screen) seems to occur  more often after a fresh boot. If the machine is suspended one or more times, unlocking problems occur less frequently (but will eventually happen again). Every week or so, even unlocking from the console fails and an X restart is needed to be able to log into KDE again.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f290c06d940 (LWP 32438))]

Thread 6 (Thread 0x7f28d0dfe700 (LWP 32473)):
#0  0x00007f291e29d460 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f2923b642f4 in QTWTF::TCMalloc_PageHeap::scavengerThread() () at /lib64/libQt5Script.so.5
#2  0x00007f2923b64339 in  () at /lib64/libQt5Script.so.5
#3  0x00007f291e2976ca in start_thread () at /lib64/libpthread.so.0
#4  0x00007f291b486f7f in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f28e9208700 (LWP 32471)):
#0  0x00007f291e29d809 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f28f051be44 in  () at /lib64/libGLX_nvidia.so.0
#2  0x00007f28e9fd4394 in  () at /lib64/libnvidia-glcore.so.378.13
#3  0x00007f28f051b12c in  () at /lib64/libGLX_nvidia.so.0
#4  0x00007f291e2976ca in start_thread () at /lib64/libpthread.so.0
#5  0x00007f291b486f7f in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f28f0ffd700 (LWP 32468)):
#0  0x00007f291b47b0e1 in ppoll () at /lib64/libc.so.6
#1  0x00007f291c27d971 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /lib64/libQt5Core.so.5
#2  0x00007f291c27ee86 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#3  0x00007f291c23268a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007f291c08f5e3 in QThread::exec() () at /lib64/libQt5Core.so.5
#5  0x00007f2922db94e5 in QQmlThreadPrivate::run() () at /lib64/libQt5Qml.so.5
#6  0x00007f291c0939ca in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f291e2976ca in start_thread () at /lib64/libpthread.so.0
#8  0x00007f291b486f7f in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f2902e18700 (LWP 32464)):
#0  0x00007f291b47b0e1 in ppoll () at /lib64/libc.so.6
#1  0x00007f291c27d971 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /lib64/libQt5Core.so.5
#2  0x00007f291c27ee86 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#3  0x00007f291c23268a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007f291c08f5e3 in QThread::exec() () at /lib64/libQt5Core.so.5
#5  0x00007f291ddb2739 in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#6  0x00007f291c0939ca in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f291e2976ca in start_thread () at /lib64/libpthread.so.0
#8  0x00007f291b486f7f in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f29044da700 (LWP 32463)):
#0  0x00007f291b47b01d in poll () at /lib64/libc.so.6
#1  0x00007f291db80d10 in _xcb_conn_wait () at /lib64/libxcb.so.1
#2  0x00007f291db82aa9 in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007f29053b4d69 in QXcbEventReader::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007f291c0939ca in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007f291e2976ca in start_thread () at /lib64/libpthread.so.0
#6  0x00007f291b486f7f in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f290c06d940 (LWP 32438)):
[KCrash Handler]
#6  0x00007f291b4ce775 in __memmove_avx_unaligned_erms () at /lib64/libc.so.6
#7  0x00007f291de3b2ae in KWin::GLVertexBuffer::setData(int, int, float const*, float const*) () at /lib64/libkwinglutils.so.9
#8  0x00007f29245196fe in KWin::SceneOpenGL2::doPaintBackground(QVector<float> const&) () at /lib64/libkwin.so.5
#9  0x00007f292451ef35 in KWin::SceneOpenGL::paintBackground(QRegion) () at /lib64/libkwin.so.5
#10 0x00007f29245078e5 in KWin::Scene::paintSimpleScreen(int, QRegion) () at /lib64/libkwin.so.5
#11 0x00007f2924519683 in KWin::SceneOpenGL2::paintSimpleScreen(int, QRegion) () at /lib64/libkwin.so.5
#12 0x00007f2924507e84 in KWin::Scene::finalPaintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwin.so.5
#13 0x00007f29245365ef in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwin.so.5
#14 0x00007f29241804af in KWin::Effect::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwineffects.so.9
#15 0x00007f292453659a in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwin.so.5
#16 0x00007f29241804af in KWin::Effect::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwineffects.so.9
#17 0x00007f292453659a in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /lib64/libkwin.so.5
#18 0x00007f2924507b0d in KWin::Scene::paintScreen(int*, QRegion const&, QRegion const&, QRegion*, QRegion*, QMatrix4x4 const&) () at /lib64/libkwin.so.5
#19 0x00007f292451fa56 in KWin::SceneOpenGL::paint(QRegion, QList<KWin::Toplevel*>) () at /lib64/libkwin.so.5
#20 0x00007f29244fa49e in KWin::Compositor::performCompositing() () at /lib64/libkwin.so.5
#21 0x00007f291c25b79b in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#22 0x00007f291ca73ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#23 0x00007f291ca7b671 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#24 0x00007f291c2336fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#25 0x00007f291c280ceb in QTimerInfoList::activateTimers() () at /lib64/libQt5Core.so.5
#26 0x00007f291c27f028 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#27 0x00007f290542e70d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5XcbQpa.so.5
#28 0x00007f291c23268a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#29 0x00007f291c23a18c in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#30 0x00007f29248860b6 in kdemain () at /lib64/libkdeinit5_kwin_x11.so
#31 0x00007f291b39f401 in __libc_start_main () at /lib64/libc.so.6
#32 0x000055bca3093cca in _start ()

Reported using DrKonqi
Comment 1 Martin Flöser 2017-04-06 05:16:34 UTC
please provide output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 2 Rodrigo 2017-04-06 11:09:16 UTC
Created attachment 104906 [details]
KWin support information

Output of "qdbus org.kde.KWin /KWin supportInformation" attached.
Comment 3 Martin Flöser 2017-04-06 15:06:10 UTC
I assume it's just another variant of the well known NVIDIA buffer issue.

*** This bug has been marked as a duplicate of bug 344326 ***
Comment 4 Rodrigo 2017-04-06 17:08:24 UTC
Yes, I had already seen that bug report and the SIMPTOMS are very similar. The difference is that when I suspend the machine, it usually (almost always) resumes fine (i.e. functions as expected). For me the problem happens most often after a screen lock/display sleep. Everytime I leave my desk for over 5 min, when I come back there's a big chance (~60%) that the issue will happen (garbled screen, unlock from tty, kwin crash). The machine is only suspended at night, never during the day when the issue happens very often. Moreover if I disable screen locking due to inactivity, the problem disappears. That is, screen locking seems to cause the issue. In that other report, they are talking about a similar issue but only when the computer is suspended and resumed.