Bug 354611 - KWin crash with screen corruption
Summary: KWin crash with screen corruption
Status: RESOLVED DUPLICATE of bug 344326
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 355469 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-10-30 18:09 UTC by João Eiras
Modified: 2016-08-29 09:35 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Screenshot of screen corruption (2.52 MB, image/jpeg)
2015-10-30 18:11 UTC, João Eiras
Details

Note You need to log in before you can comment on or make changes to this bug.
Description João Eiras 2015-10-30 18:09:06 UTC
Application: kwin_x11 (5.2.2)

Qt Version: 5.4.1
Operating System: Linux 3.19.0-31-generic x86_64
Distribution: Ubuntu 15.04

-- Information about the crash:
- What I was doing when the application crashed:
When I boot my pc from sleep or switch from a terminal to my desktop, sometimes the screen is corrupted (see attached screenshot). I think this has to do with using a very novel nvidia driver so I can work with CUDA. Anyway, after booting from sleep, if the screen is corrupted, I'll switch back and forth between a terminal and the desktop environement until the corruption goes away. After taht I just input my password in the login dialog and log into KDE. KWin usually crashes then. I don't know if the crash has anything to do with the screen corruption, but I wouldn't be surprised.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KWin (kwin_x11), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f71b43c0800 (LWP 4771))]

Thread 5 (Thread 0x7f7198fcd700 (LWP 4774)):
#0  0x00007f71b3e96743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f71b26e0101 in qt_safe_select (nfds=15, fdread=fdread@entry=0x7f7190000a98, fdwrite=fdwrite@entry=0x7f7190000d28, fdexcept=fdexcept@entry=0x7f7190000fb8, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75
#2  0x00007f71b26e1cd2 in select (timeout=0x0, exceptfds=0x7f7190000fb8, writefds=0x7f7190000d28, readfds=0x7f7190000a98, nfds=<optimized out>, this=0x7f71900008e0) at kernel/qeventdispatcher_unix.cpp:320
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f7190000900, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196
#4  0x00007f71b26e2275 in QEventDispatcherUNIX::processEvents (this=0x7f71900008e0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#5  0x00007f71b26893e2 in QEventLoop::exec (this=this@entry=0x7f7198fccda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f71b2448b44 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#7  0x00007f71ac2fbf65 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f71b244db0e in QThreadPrivate::start (arg=0x1a32e00) at thread/qthread_unix.cpp:337
#9  0x00007f71ab4c86aa in start_thread (arg=0x7f7198fcd700) at pthread_create.c:333
#10 0x00007f71b3e9feed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f7183fff700 (LWP 4776)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f71b1252644 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f71b1252689 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f71ab4c86aa in start_thread (arg=0x7f7183fff700) at pthread_create.c:333
#4  0x00007f71b3e9feed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f7199c2a700 (LWP 6523)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f71b244ec6b in wait (time=18446744073709551615, this=0x261f920) at thread/qwaitcondition_unix.cpp:128
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x2628040, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:200
#3  0x00007f71b14d9fab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#4  0x00007f71b14da3a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#5  0x00007f71b244db0e in QThreadPrivate::start (arg=0x2627fc0) at thread/qthread_unix.cpp:337
#6  0x00007f71ab4c86aa in start_thread (arg=0x7f7199c2a700) at pthread_create.c:333
#7  0x00007f71b3e9feed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f718b7ff700 (LWP 7395)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f71b244ec6b in wait (time=18446744073709551615, this=0x2cd1330) at thread/qwaitcondition_unix.cpp:128
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x2cd1520, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:200
#3  0x00007f71b14d9fab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#4  0x00007f71b14da3a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#5  0x00007f71b244db0e in QThreadPrivate::start (arg=0x2cd14a0) at thread/qthread_unix.cpp:337
#6  0x00007f71ab4c86aa in start_thread (arg=0x7f718b7ff700) at pthread_create.c:333
#7  0x00007f71b3e9feed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f71b43c0800 (LWP 4771)):
[KCrash Handler]
#6  0x00007f71b1c5d238 in _mm_stream_si128 (__B=..., __A=0x7f7198270040) at /usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:1465
#7  KWin::WindowQuadList::makeInterleavedArrays (this=this@entry=0x7fff9365ead0, type=type@entry=7, vertices=vertices@entry=0x7f7198270040, textureMatrix=...) at ../../libkwineffects/kwineffects.cpp:1195
#8  0x00007f71b3a60f50 in KWin::SceneOpenGL2Window::performPaint (this=this@entry=0x1e66e70, mask=mask@entry=9, region=..., data=...) at ../scene_opengl.cpp:1522
#9  0x00007f71b3a66642 in KWin::SceneOpenGL2::performPaintWindow (this=this@entry=0x16aa2f0, w=w@entry=0x62a9e50, mask=mask@entry=9, region=..., data=...) at ../scene_opengl.cpp:1082
#10 0x00007f71b3a66818 in KWin::SceneOpenGL2::finalDrawWindow (this=0x16aa2f0, w=w@entry=0x62a9e50, mask=mask@entry=9, region=..., data=...) at ../scene_opengl.cpp:1068
#11 0x00007f71b3a7f139 in KWin::EffectsHandlerImpl::drawWindow (this=0x16f26e0, w=w@entry=0x62a9e50, mask=mask@entry=9, region=..., data=...) at ../effects.cpp:473
#12 0x00007f71b3a48841 in KWin::Scene::finalPaintWindow (this=<optimized out>, w=w@entry=0x62a9e50, mask=mask@entry=9, region=..., data=...) at ../scene.cpp:605
#13 0x00007f71b3a7ef7a in KWin::EffectsHandlerImpl::paintWindow (this=0x16f26e0, w=0x62a9e50, mask=mask@entry=9, region=..., data=...) at ../effects.cpp:436
#14 0x00007f71b3a4cee8 in KWin::Scene::paintWindow (this=this@entry=0x16aa2f0, w=0x1e66e70, mask=9, region=..., quads=...) at ../scene.cpp:477
#15 0x00007f71b3a4ac0e in KWin::Scene::paintSimpleScreen (this=this@entry=0x16aa2f0, orig_mask=orig_mask@entry=8, region=...) at ../scene.cpp:380
#16 0x00007f71b3a5b513 in KWin::SceneOpenGL2::paintSimpleScreen (this=this@entry=0x16aa2f0, mask=mask@entry=8, region=...) at ../scene_opengl.cpp:1005
#17 0x00007f71b3a48205 in KWin::Scene::finalPaintScreen (this=0x16aa2f0, mask=mask@entry=8, region=..., data=...) at ../scene.cpp:199
#18 0x00007f71b3a7ecff in KWin::EffectsHandlerImpl::paintScreen (this=0x16f26e0, mask=8, region=..., data=...) at ../effects.cpp:393
#19 0x00007f71b3a47e6a in KWin::Scene::paintScreen (this=this@entry=0x16aa2f0, mask=mask@entry=0x7fff9365f3ec, damage=..., repaint=..., updateRegion=updateRegion@entry=0x7fff9365f400, validRegion=validRegion@entry=0x7fff9365f410) at ../scene.cpp:149
#20 0x00007f71b3a61da7 in KWin::SceneOpenGL::paint (this=0x16aa2f0, damage=..., toplevels=...) at ../scene_opengl.cpp:651
#21 0x00007f71b3a41973 in KWin::Compositor::performCompositing (this=0x169a4b0) at ../composite.cpp:658
#22 0x00007f71b26bd6f3 in QObject::event (this=0x169a4b0, e=<optimized out>) at kernel/qobject.cpp:1267
#23 0x00007f71b2f95b2c in QApplicationPrivate::notify_helper (this=0x1561c80, receiver=0x169a4b0, e=0x7fff9365f820) at kernel/qapplication.cpp:3720
#24 0x00007f71b2f9b000 in QApplication::notify (this=0x7fff9365fa60, receiver=0x169a4b0, e=0x7fff9365f820) at kernel/qapplication.cpp:3503
#25 0x00007f71b268bc2b in QCoreApplication::notifyInternal (this=0x7fff9365fa60, receiver=0x169a4b0, event=event@entry=0x7fff9365f820) at kernel/qcoreapplication.cpp:935
#26 0x00007f71b26e3ae5 in sendEvent (event=0x7fff9365f820, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#27 QTimerInfoList::activateTimers (this=0x15ab688) at kernel/qtimerinfo_unix.cpp:635
#28 0x00007f71b26e16a0 in QEventDispatcherUNIX::activateTimers (this=this@entry=0x15b5d60) at kernel/qeventdispatcher_unix.cpp:549
#29 0x00007f71b26e2243 in QEventDispatcherUNIX::processEvents (this=0x15b5d60, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:611
#30 0x00007f719d64b96d in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#31 0x00007f71b26893e2 in QEventLoop::exec (this=this@entry=0x7fff9365f980, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#32 0x00007f71b269102c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#33 0x00007f71b29d031c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1510
#34 0x00007f71b2f917a5 in QApplication::exec () at kernel/qapplication.cpp:2956
#35 0x00007f71b41678c3 in kdemain (argc=1, argv=0x7fff9365fbb8) at ../main_x11.cpp:294
#36 0x00007f71b3db9a40 in __libc_start_main (main=0x400790 <main(int, char**)>, argc=1, argv=0x7fff9365fbb8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff9365fba8) at libc-start.c:289
#37 0x00000000004007c9 in _start ()

Reported using DrKonqi
Comment 1 João Eiras 2015-10-30 18:11:36 UTC
Created attachment 95230 [details]
Screenshot of screen corruption
Comment 2 Thomas Lübking 2015-10-31 09:47:50 UTC
Sounds like bug #344326
The screen corruption should be covered by the workaround - the crashes might still occur (if a problematic access falls into the reset timeout)

Setting as dupe, workaround is in KWin 5.4

*** This bug has been marked as a duplicate of bug 344326 ***
Comment 3 Martin Flöser 2016-08-29 09:35:33 UTC
*** Bug 355469 has been marked as a duplicate of this bug. ***