Application: kwin_x11 (5.2.0) Qt Version: 5.4.0 Operating System: Linux 3.16.0-4-amd64 x86_64 Distribution: Debian GNU/Linux 8.0 (jessie) -- Information about the crash: - What I was doing when the application crashed: 1. Open KDE system settings 2. Open the application style (Anwendungs-Stil) module in the Appearance (Erscheinungsbild) section 3. Go the the window decoration (Fensterdekoration) view 4. Select the Breeze theme 5. Click apply 6. Select the Plastik theme 7. Click apply again 8. CRASH - Things to note: * I'm using OpenSource drivers (nouveau) * I want the Oxygen style back * It doesn't happen when switching from beeze to an Aurorae theme and then to Plastik The crash can be reproduced every time. -- 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 0x7f73d76d17c0 (LWP 30014))] Thread 6 (Thread 0x7f73a3fff700 (LWP 30028)): #0 0x00007f73d71aef33 in select () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f73d5a337d1 in qt_safe_select (nfds=24, fdread=fdread@entry=0x7f739c000a78, fdwrite=fdwrite@entry=0x7f739c000d08, fdexcept=fdexcept@entry=0x7f739c000f98, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75 #2 0x00007f73d5a3542c in select (timeout=0x0, exceptfds=0x7f739c000f98, writefds=0x7f739c000d08, readfds=0x7f739c000a78, nfds=<optimized out>, this=0x7f739c0008c0) at kernel/qeventdispatcher_unix.cpp:320 #3 QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f739c0008e0, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196 #4 0x00007f73d5a359a5 in QEventDispatcherUNIX::processEvents (this=0x7f739c0008c0, flags=...) at kernel/qeventdispatcher_unix.cpp:607 #5 0x00007f73d59de8d2 in QEventLoop::exec (this=this@entry=0x7f73a3ffede0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007f73d57a3074 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503 #7 0x00007f73cf6582c5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #8 0x00007f73d57a7e4e in QThreadPrivate::start (arg=0x29634e0) at thread/qthread_unix.cpp:337 #9 0x00007f73ce83d0a4 in start_thread (arg=0x7f73a3fff700) at pthread_create.c:309 #10 0x00007f73d71b5ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 5 (Thread 0x7f739a5f6700 (LWP 30032)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f73d45b9334 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 #2 0x00007f73d45b9379 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5 #3 0x00007f73ce83d0a4 in start_thread (arg=0x7f739a5f6700) at pthread_create.c:309 #4 0x00007f73d71b5ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 4 (Thread 0x7f73b3fe6700 (LWP 31332)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238 #1 0x00007f73d57a8ee8 in wait_relative (time=30000, this=0x3c01650) at thread/qwaitcondition_unix.cpp:118 #2 wait (time=30000, this=0x3c01650) at thread/qwaitcondition_unix.cpp:126 #3 QWaitCondition::wait (this=this@entry=0x3c058b0, mutex=mutex@entry=0x18e1820, time=30000) at thread/qwaitcondition_unix.cpp:200 #4 0x00007f73d57a502c in QThreadPoolThread::run (this=0x3c058a0) at thread/qthreadpool.cpp:127 #5 0x00007f73d57a7e4e in QThreadPrivate::start (arg=0x3c058a0) at thread/qthread_unix.cpp:337 #6 0x00007f73ce83d0a4 in start_thread (arg=0x7f73b3fe6700) at pthread_create.c:309 #7 0x00007f73d71b5ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 3 (Thread 0x7f739b119700 (LWP 31333)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238 #1 0x00007f73d57a8ee8 in wait_relative (time=30000, this=0x195bf20) at thread/qwaitcondition_unix.cpp:118 #2 wait (time=30000, this=0x195bf20) at thread/qwaitcondition_unix.cpp:126 #3 QWaitCondition::wait (this=this@entry=0x18eff10, mutex=mutex@entry=0x18e1820, time=30000) at thread/qwaitcondition_unix.cpp:200 #4 0x00007f73d57a502c in QThreadPoolThread::run (this=0x18eff00) at thread/qthreadpool.cpp:127 #5 0x00007f73d57a7e4e in QThreadPrivate::start (arg=0x18eff00) at thread/qthread_unix.cpp:337 #6 0x00007f73ce83d0a4 in start_thread (arg=0x7f739b119700) at pthread_create.c:309 #7 0x00007f73d71b5ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 2 (Thread 0x7f73b345f700 (LWP 31374)): #0 0x00007f73d71aef33 in select () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f73d5a337d1 in qt_safe_select (nfds=17, fdread=fdread@entry=0x7f73a40ee018, fdwrite=fdwrite@entry=0x7f73a40ee2a8, fdexcept=fdexcept@entry=0x7f73a40ee538, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:75 #2 0x00007f73d5a3542c in select (timeout=0x0, exceptfds=0x7f73a40ee538, writefds=0x7f73a40ee2a8, readfds=0x7f73a40ee018, nfds=<optimized out>, this=0x7f73a4095590) at kernel/qeventdispatcher_unix.cpp:320 #3 QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f73a40ede80, flags=..., flags@entry=..., timeout=timeout@entry=0x0) at kernel/qeventdispatcher_unix.cpp:196 #4 0x00007f73d5a359a5 in QEventDispatcherUNIX::processEvents (this=0x7f73a4095590, flags=...) at kernel/qeventdispatcher_unix.cpp:607 #5 0x00007f73d59de8d2 in QEventLoop::exec (this=this@entry=0x7f73b345ede0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #6 0x00007f73d57a3074 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503 #7 0x00007f73cf6582c5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #8 0x00007f73d57a7e4e in QThreadPrivate::start (arg=0x1c21b70) at thread/qthread_unix.cpp:337 #9 0x00007f73ce83d0a4 in start_thread (arg=0x7f73b345f700) at pthread_create.c:309 #10 0x00007f73d71b5ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7f73d76d17c0 (LWP 30014)): [KCrash Handler] #5 KWin::GLShader::resolveLocations (this=0x0) at ../../libkwineffects/kwinglutils.cpp:419 #6 0x00007f73cfaa4de2 in KWin::GLShader::setUniform (this=0x0, uniform=uniform@entry=KWin::GLShader::Offset, value=...) at ../../libkwineffects/kwinglutils.cpp:456 #7 0x00007f73d6d9444d in KWin::SceneOpenGL2::doPaintBackground (this=<optimized out>, vertices=...) at ../scene_opengl.cpp:1042 #8 0x00007f73d6d99d35 in KWin::SceneOpenGL::paintBackground (this=this@entry=0x3b07bc0, region=...) at ../scene_opengl.cpp:732 #9 0x00007f73d6d83b1c in KWin::Scene::paintSimpleScreen (this=this@entry=0x3b07bc0, orig_mask=orig_mask@entry=0, region=...) at ../scene.cpp:369 #10 0x00007f73d6d93bf3 in KWin::SceneOpenGL2::paintSimpleScreen (this=this@entry=0x3b07bc0, mask=mask@entry=0, region=...) at ../scene_opengl.cpp:1005 #11 0x00007f73d6d80f25 in KWin::Scene::finalPaintScreen (this=0x3b07bc0, mask=mask@entry=0, region=..., data=...) at ../scene.cpp:199 #12 0x00007f73d6db74cf in KWin::EffectsHandlerImpl::paintScreen (this=0x3bffc00, mask=mask@entry=0, region=..., data=...) at ../effects.cpp:393 #13 0x00007f73d4fb557f in KWin::Effect::paintScreen (this=this@entry=0x1e94580, mask=mask@entry=0, region=..., data=...) at ../../libkwineffects/kwineffects.cpp:535 #14 0x00007f73d6db747d in KWin::EffectsHandlerImpl::paintScreen (this=0x3bffc00, mask=mask@entry=0, region=..., data=...) at ../effects.cpp:390 #15 0x00007f73d4fb557f in KWin::Effect::paintScreen (this=this@entry=0x324f410, mask=mask@entry=0, region=..., data=...) at ../../libkwineffects/kwineffects.cpp:535 #16 0x00007f73d6db747d in KWin::EffectsHandlerImpl::paintScreen (this=0x3bffc00, mask=mask@entry=0, region=..., data=...) at ../effects.cpp:390 #17 0x00007f73d4fb557f in KWin::Effect::paintScreen (this=this@entry=0x3a224e0, mask=mask@entry=0, region=..., data=...) at ../../libkwineffects/kwineffects.cpp:535 #18 0x00007f73d6db747d in KWin::EffectsHandlerImpl::paintScreen (this=0x3bffc00, mask=0, region=..., data=...) at ../effects.cpp:390 #19 0x00007f73d6d80b8a in KWin::Scene::paintScreen (this=this@entry=0x3b07bc0, mask=mask@entry=0x7fff9a97fb9c, damage=..., repaint=..., updateRegion=updateRegion@entry=0x7fff9a97fbb0, validRegion=validRegion@entry=0x7fff9a97fbc0) at ../scene.cpp:149 #20 0x00007f73d6d9a657 in KWin::SceneOpenGL::paint (this=0x3b07bc0, damage=..., toplevels=...) at ../scene_opengl.cpp:651 #21 0x00007f73d6d7a7a3 in KWin::Compositor::performCompositing (this=0x196b2e0) at ../composite.cpp:658 #22 0x00007f73d5a11773 in QObject::event (this=0x196b2e0, e=<optimized out>) at kernel/qobject.cpp:1267 #23 0x00007f73d62dfd3c in QApplicationPrivate::notify_helper (this=0x16a8290, receiver=0x196b2e0, e=0x7fff9a97ffe0) at kernel/qapplication.cpp:3722 #24 0x00007f73d62e5330 in QApplication::notify (this=0x7fff9a980220, receiver=0x196b2e0, e=0x7fff9a97ffe0) at kernel/qapplication.cpp:3505 #25 0x00007f73d59e103b in QCoreApplication::notifyInternal (this=0x7fff9a980220, receiver=0x196b2e0, event=event@entry=0x7fff9a97ffe0) at kernel/qcoreapplication.cpp:932 #26 0x00007f73d5a371a5 in sendEvent (event=0x7fff9a97ffe0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228 #27 QTimerInfoList::activateTimers (this=0x16edc08) at kernel/qtimerinfo_unix.cpp:635 #28 0x00007f73d5a34e00 in QEventDispatcherUNIX::activateTimers (this=this@entry=0x16e9e80) at kernel/qeventdispatcher_unix.cpp:549 #29 0x00007f73d5a35973 in QEventDispatcherUNIX::processEvents (this=0x16e9e80, flags=flags@entry=...) at kernel/qeventdispatcher_unix.cpp:611 #30 0x00007f73c2d4fafd in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62 #31 0x00007f73d59de8d2 in QEventLoop::exec (this=this@entry=0x7fff9a980140, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204 #32 0x00007f73d59e637c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1185 #33 0x00007f73d5d21bcc in QGuiApplication::exec () at kernel/qguiapplication.cpp:1535 #34 0x00007f73d62dbdf5 in QApplication::exec () at kernel/qapplication.cpp:2956 #35 0x00007f73d747d913 in kdemain (argc=3, argv=0x7fff9a980378) at ../main_x11.cpp:294 #36 0x00007f73d70f1b45 in __libc_start_main (main=0x4007d0 <main(int, char**)>, argc=3, argv=0x7fff9a980378, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff9a980368) at libc-start.c:287 #37 0x00000000004007fe in _start () Reported using DrKonqi
ShaderBinder binder(ShaderManager::ColorShader); binder.shader()->setUniform(GLShader::Offset, QVector2D(0, 0)); Means that scene-color-*.glsl did not compile. Since this only happens under "random" (technically there should not be much difference between Plastik and Aurorae) conditions, this is very likely due to nouveau. - Can you try the nvidia blob? - Please attach the output of "qdbus org.kde.KWin /KWin supportInformation"
Created attachment 90968 [details] qdbus org.kde.KWin /KWin supportInformation
> glCoreProfile: true Try OpenGL 2.0 > OpenGL platform interface: GLX and/or EGL > OpenGL renderer string: Gallium 0.4 on NVA5 > GPU class: G80/G90 NVA5 would be GT218, but both are Tesla chips - they're supported by the current nvidia blob if you want to try.
So your conclusion is that this is a driver bug and can't be caused by a bug in KWin? Those settings you mentioned didn't change anything; also the binary driver (aside from being faster) sucks in pretty much every other regard that I didn't even bother getting it to work after last distro hop (after finding that nouveau had improved driver stability considerably). If you believe that this might not be driver bug please tell me. I don't want to go through that hassle needlessly. Thank you for responding so quickly!
(In reply to Alexander Schlarb from comment #4) > So your conclusion is that this is a driver bug "likely" > and can't be caused by a bug in KWin? If the shader was incompliant, I'd expect compilation to fail everytime. If compilation would fail for other reasons, or not be triggered (dangeling singleton instance pointer), I'd expect the from/to deco to not have much impact, but have it happen on eg. every deco change (if not any reconfig) I'm certainly not ruling out that the GPU is maybe left in a invalid state due to a previous error caused by either KWin or QtQuick (aurorae/plastik) You may want to export LIBGL_DEBUG=verbose export MESA_DEBUG=1 kwin_x11 --replace & And see whether any errors are noted before the crash happens (be prepared that this will print a lot of text - exporting GALLIUM_LOG_FILE might be reasonable)
Well, I guess I missed your response there Thomas, sorry about that… ^_^ Anyway: I cannot reproduce this issue anymore and everything works as expected™. Since Nouveau have done a lot of refactoring and stability fixes upstream, I fairly sure that that has fixed this issue as well. :-) Thanks for your help!