Summary: | Some applications make Kwin crash and disable compositing if V-sync is enabled on a system | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Ghost <redredemption> |
Component: | scene-opengl | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 5.10.3 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Ghost
2017-06-30 16:19:17 UTC
Without a backtrace we have no chance to investigate the issue. Though given your report I'm very confident that we will see the crash ending in the proprietary NVIDIA driver. All the steps with full composition pipeline etc. are just workarounds for the proprietary driver. Not much we can do about it (especially as most of the devs are not using NVIDIA hardware). I'd gladly do a backtrace, but I was told that's not a case on Arch Linux. I followed steps here: https://wiki.archlinux.org/index.php/Debug_-_Getting_Traces But Pacman can't verify PGP signatures of the package to start compiling.. I found out a solution.. Importing a PGP key from PKGBUILD worked. Well. I'm not entirely sure what I should to compile with debug symbols to supply you with as much information as possible. Currently I'm compiling Kwin with optimisations and debug information enabled (DCMAKE_BUILD_TYPE set to RelWithDebInfo). Do I need to compile plasma-desktop package too? no, KWin is sufficient. I think I got it: Thread 11 (Thread 0x7fffc2170700 (LWP 27386)): #0 0x00007ffff7859670 in raise () at /usr/lib/libc.so.6 #1 0x00007ffff785ad00 in abort () at /usr/lib/libc.so.6 #2 0x00007ffff4cdb807 in () at /usr/lib/libQt5Core.so.5 #3 0x00007fffd75da87c in KWin::X11StandalonePlatform::<lambda()>::operator() (__closure=<optimized out>) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/plugins/platforms/x11/standalone/x11_platform.cpp:224 #4 0x00007fffd75da87c in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Pla tform::OpenGLSafePoint)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:130 #5 0x00007fffd75da87c in QtPrivate::Functor<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0>::call<QtPrivate ::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:242 #6 0x00007fffd75da87c in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0, QtPr ivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<o ptimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobject_impl.h:168 #7 0x00007ffff4ef957f in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #8 0x00007ffff4f76767 in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib/libQt5Core.so.5 #9 0x00007ffff4f06008 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib/libQt5Core.so.5 #10 0x00007ffff4ef9e2b in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #11 0x00007ffff5bf546c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #12 0x00007ffff5bfccf4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #13 0x00007ffff4ecab98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #14 0x00007ffff4f21bae in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5 #15 0x00007ffff4f1fdc2 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #16 0x00007ffff4ec921a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #17 0x00007ffff4ceb40a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #18 0x00007ffff4cefcbd in () at /usr/lib/libQt5Core.so.5 #19 0x00007ffff0aba297 in start_thread () at /usr/lib/libpthread.so.0 #20 0x00007ffff79131ef in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7fffc09d4700 (LWP 26398)): #0 0x00007ffff0ac039d in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007ffff3e4eac4 in () at /usr/lib/libQt5Script.so.5 #2 0x00007ffff3e4eb09 in () at /usr/lib/libQt5Script.so.5 #3 0x00007ffff0aba297 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007ffff79131ef in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7fffcf0f3700 (LWP 26395)): #0 0x00007ffff7909326 in ppoll () at /usr/lib/libc.so.6 #1 0x00007ffff4f1e471 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5 #2 0x00007ffff4f1fb5e in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007ffff4ec921a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007ffff4ceb40a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #5 0x00007fffef7d9645 in () at /usr/lib/libQt5Qml.so.5 #6 0x00007ffff4cefcbd in () at /usr/lib/libQt5Core.so.5 #7 0x00007ffff0aba297 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007ffff79131ef in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7fffd7fff700 (LWP 26297)): #0 0x00007ffff7909326 in ppoll () at /usr/lib/libc.so.6 #1 0x00007ffff4f1e471 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5 #2 0x00007ffff4f1fb5e in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007ffff4ec921a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007ffff4ceb40a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #5 0x00007fffee97ed45 in () at /usr/lib/libQt5DBus.so.5 #6 0x00007ffff4cefcbd in () at /usr/lib/libQt5Core.so.5 #7 0x00007ffff0aba297 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007ffff79131ef in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7fffde354700 (LWP 26258)): #0 0x00007ffff790924d in poll () at /usr/lib/libc.so.6 #1 0x00007ffff69ee8e0 in () at /usr/lib/libxcb.so.1 #2 0x00007ffff69f0679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007fffdf438d49 in () at /usr/lib/libQt5XcbQpa.so.5 #4 0x00007ffff4cefcbd in () at /usr/lib/libQt5Core.so.5 #5 0x00007ffff0aba297 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007ffff79131ef in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7ffff7ed1840 (LWP 25476)): #0 0x00007ffff790e349 in syscall () at /usr/lib/libc.so.6 #1 0x00007fffcd25f945 in () at /usr/lib/libGLX_nvidia.so.0 #2 0x00007fffcd25f643 in () at /usr/lib/libGLX_nvidia.so.0 #3 0x00007fffc3324d8d in () at /usr/lib/libnvidia-glcore.so.381.22 #4 0x00007fffc321ba51 in () at /usr/lib/libnvidia-glcore.so.381.22 #5 0x00007fffc2eaa214 in () at /usr/lib/libnvidia-glcore.so.381.22 #6 0x00007ffff0662634 in KWin::checkGLError(char const*) (txt=txt@entry=0x7ffff757ef3e "Init") at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/libkwineffects/kwinglutils.cpp:135 #7 0x00007ffff747ecba in KWin::SceneOpenGL2::SceneOpenGL2(KWin::OpenGLBackend*, QObject*) (this=0xf86b80, backend=<optimized out>, parent=<optimized out>) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/scene_opengl.cpp:1015 #8 0x00007ffff747f03e in KWin::SceneOpenGL::createScene(QObject*) (parent=parent@entry=0x6d2610) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/scene_opengl.cpp:573 #9 0x00007ffff745634c in KWin::Compositor::slotCompositingOptionsInitialized() (this=this@entry=0x6d2610) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/composite.cpp:212 #10 0x00007ffff7456eb2 in KWin::Compositor::setup() (this=0x6d2610) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/composite.cpp:184 #11 0x00007ffff4ef9e72 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #12 0x00007ffff5bf546c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #13 0x00007ffff5bfccf4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #14 0x00007ffff4ecab98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #15 0x00007ffff4ecd02d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5 #16 0x00007ffff4f1f974 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::Pr ocessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #17 0x00007fffdf49b5bd in () at /usr/lib/libQt5XcbQpa.so.5 #18 0x00007ffff4ec921a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #19 0x00007ffff4ed1a74 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #20 0x00007ffff7bd4134 in kdemain(int, char**) (argc=<optimized out>, argv=0x7fffffffdfe8) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/main_x11.cpp:466 #21 0x00007ffff784643a in __libc_start_main () at /usr/lib/libc.so.6 #22 0x00000000004006ca in _start () This crash is from startup of KWin. That doesn't fit the description that it happens when using krita. This time I pulled backtrace up upon the crash. (I let Kwin restart itself) Previously, I reproduced the bug, and then pulled backtrace up when Kwin was frozen. I've never done that before. If I still do it wrong, please put the record straight and tell me how it should be done. Thread 8 (Thread 0x7f16019ec700 (LWP 25759)): #0 0x00007f1638be72bd in nanosleep () at /usr/lib/libc.so.6 #1 0x00007f1638be71fa in sleep () at /usr/lib/libc.so.6 #2 0x00007f16383caefa in () at /usr/lib/libKF5Crash.so.5 #3 0x00007f16383cb5a3 in KCrash::defaultCrashHandler(int) () at /usr/lib/libKF5Crash.so.5 #4 0x00007f1638b5f6f0 in <signal handler called> () at /usr/lib/libc.so.6 #5 0x00007f1638b5f670 in raise () at /usr/lib/libc.so.6 #6 0x00007f1638b60d00 in abort () at /usr/lib/libc.so.6 #7 0x00007f1635fe1807 in () at /usr/lib/libQt5Core.so.5 #8 0x00007f161caba87c in KWin::X11StandalonePlatform::<lambda()>::operator() (__closure=<optimized out>) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/plugins/platforms/x11/standalone/x11_platform.cpp:224 #9 0x00007f161caba87c in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Pla tform::OpenGLSafePoint)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:130 #10 0x00007f161caba87c in QtPrivate::Functor<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0>::call<QtPrivate ::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:242 #11 0x00007f161caba87c in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0, QtPr ivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<o ptimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobject_impl.h:168 #12 0x00007f16361ff57f in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #13 0x00007f163627c767 in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib/libQt5Core.so.5 #14 0x00007f163620c008 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib/libQt5Core.so.5 #15 0x00007f16361ffe2b in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #16 0x00007f1636efb46c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #17 0x00007f1636f02cf4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #18 0x00007f16361d0b98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #19 0x00007f1636227bae in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5 #20 0x00007f1636225dc2 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #21 0x00007f16361cf21a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #22 0x00007f1635ff140a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #23 0x00007f1635ff5cbd in () at /usr/lib/libQt5Core.so.5 #24 0x00007f1631dc0297 in start_thread () at /usr/lib/libpthread.so.0 #25 0x00007f1638c191ef in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7f16011e3700 (LWP 25174)): #0 0x00007f1631dc639d in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f1635154ac4 in () at /usr/lib/libQt5Script.so.5 #2 0x00007f1635154b09 in () at /usr/lib/libQt5Script.so.5 #3 0x00007f1631dc0297 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f1638c191ef in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7f1616ee2700 (LWP 25123)): #0 0x00007f1638c0f326 in ppoll () at /usr/lib/libc.so.6 #1 0x00007f1636224471 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1636225b5e in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007f16361cf21a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f1635ff140a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #5 0x00007f1630adf645 in () at /usr/lib/libQt5Qml.so.5 #6 0x00007f1635ff5cbd in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1631dc0297 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1638c191ef in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7f161d4df700 (LWP 25050)): #0 0x00007f1638c0f326 in ppoll () at /usr/lib/libc.so.6 #1 0x00007f1636224471 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5 #2 0x00007f1636225b5e in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #3 0x00007f16361cf21a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f1635ff140a in QThread::exec() () at /usr/lib/libQt5Core.so.5 #5 0x00007f162fc84d45 in () at /usr/lib/libQt5DBus.so.5 #6 0x00007f1635ff5cbd in () at /usr/lib/libQt5Core.so.5 #7 0x00007f1631dc0297 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f1638c191ef in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f161f65a700 (LWP 25022)): #0 0x00007f1638c0f24d in poll () at /usr/lib/libc.so.6 #1 0x00007f1637cf48e0 in () at /usr/lib/libxcb.so.1 #2 0x00007f1637cf6679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007f162073ed49 in () at /usr/lib/libQt5XcbQpa.so.5 #4 0x00007f1635ff5cbd in () at /usr/lib/libQt5Core.so.5 #5 0x00007f1631dc0297 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007f1638c191ef in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f16391db840 (LWP 25009)): #0 0x00007f1638c14349 in syscall () at /usr/lib/libc.so.6 #1 0x00007f161463e945 in () at /usr/lib/libGLX_nvidia.so.0 #2 0x00007f161463e643 in () at /usr/lib/libGLX_nvidia.so.0 #3 0x00007f1603324be3 in () at /usr/lib/libnvidia-glcore.so.381.22 #4 0x00007f160321ba48 in () at /usr/lib/libnvidia-glcore.so.381.22 #5 0x00007f1602eaa214 in () at /usr/lib/libnvidia-glcore.so.381.22 #6 0x00007f1631968634 in KWin::checkGLError(char const*) (txt=txt@entry=0x7f1638884f3e "Init") at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/libkwineffects/kwinglutils.cpp:135 #7 0x00007f1638784cba in KWin::SceneOpenGL2::SceneOpenGL2(KWin::OpenGLBackend*, QObject*) (this=0xce7370, backend=<optimized out>, parent=<optimized out>) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/scene_opengl.cpp:1015 #8 0x00007f163878503e in KWin::SceneOpenGL::createScene(QObject*) (parent=parent@entry=0xb099a0) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/scene_opengl.cpp:573 #9 0x00007f163875c34c in KWin::Compositor::slotCompositingOptionsInitialized() (this=this@entry=0xb099a0) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/composite.cpp:212 #10 0x00007f163875ceb2 in KWin::Compositor::setup() (this=0xb099a0) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/composite.cpp:184 #11 0x00007f16361ffe72 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #12 0x00007f1636efb46c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #13 0x00007f1636f02cf4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #14 0x00007f16361d0b98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #15 0x00007f16361d302d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5 #16 0x00007f1636225974 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #17 0x00007f16207a15bd in () at /usr/lib/libQt5XcbQpa.so.5 #18 0x00007f16361cf21a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #19 0x00007f16361d7a74 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #20 0x00007f1638eda134 in kdemain(int, char**) (argc=<optimized out>, argv=0x7ffdcd1e6bd8) at /home/hasbreak/Temporary/kwin/src/kwin-5.10.3/main_x11.cpp:466 #21 0x00007f1638b4c43a in __libc_start_main () at /usr/lib/libc.so.6 #22 0x00000000004006ca in _start () Kwin update 5.10.3.1-1 solves the issue of long hanging upon a crash. Though, it brings another issue. I can no longer re-enable OpenGL compositing (the blue caution box in the compositor settings that allowed to do so is no longer available/switching to XRender and OpenGL2/3.1 back doesn't work either), and I have to logout from KDE Plasma session.. *** This bug has been marked as a duplicate of bug 381870 *** |