Summary: | Crash in threaded KWin::X11StandalonePlatform::createOpenGLSafePoint | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Sam <sammercer0> |
Component: | platform-x11-standalone | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aaugusto, bac_norman, barnabas02, boruccia5, bugseforuns, dario.cangialosi, dasmith, dpsenick, emelenas, fuksaj, germano.massullo, gtwilliams, hebert.soares, jackneill1000, jpalecek, kde_org, kepasi, larrosa, leotorpedo, mahtande, maxpatera, mkyral, mrader3940, nate, nick.craig.law, pol, ry.luis, shamsuddeenketa10, simonandric5, ultr, xmundt |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.8.3 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/kwin/a7117e430454f8e39b1279695ff83bf73e1eb9ed | Version Fixed In: | 5.11.3 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
Proposed patch New crash information added by DrKonqi |
Description
Sam
2016-11-05 17:46:31 UTC
@Antonio: we might have a problem here with the new threaded safety check. Unfortunately Arch, so no debug symbols and I don't really understand what's going on. *** Bug 372078 has been marked as a duplicate of this bug. *** *** Bug 373358 has been marked as a duplicate of this bug. *** Better backtrace from duplicate: Application: kwin_x11 (5.8.4) Qt Version: 5.7.0 Frameworks Version: 5.27.0 Operating System: Linux 4.8.11-300.fc25.x86_64 x86_64 Distribution: "Fedora release 25 (Twenty Five)" -- Information about the crash: - What I was doing when the application crashed: I simply logged in from sddm after a reboot and kwin crashed and the abrt dialog appeared. kwin restarted by the time I processed this bug report. -- Backtrace: Application: KWin (kwin_x11), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". [Current thread is 1 (Thread 0x7fccc4cb1940 (LWP 1082))] Thread 7 (Thread 0x7fcca5245700 (LWP 1339)): #0 0x00007fccd7e7c460 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007fccdd6c2bd4 in QTWTF::TCMalloc_PageHeap::scavengerThread() () from /lib64/libQt5Script.so.5 #2 0x00007fccdd6c2c19 in QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /lib64/libQt5Script.so.5 #3 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #4 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 6 (Thread 0x7fcca6388700 (LWP 1246)): #0 0x00007fccd7e7c460 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007fcca713aad3 in radeon_drm_cs_emit_ioctl () from /usr/lib64/dri/r600_dri.so #2 0x00007fcca713a217 in impl_thrd_routine () from /usr/lib64/dri/r600_dri.so #3 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #4 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 5 (Thread 0x7fcca7fff700 (LWP 1239)): [KCrash Handler] #6 0x00007fccd5da485f in QLockFilePrivate::tryLock_sys() () from /lib64/libQt5Core.so.5 #7 0x00007fccd5d51a6d in QLockFile::tryLock(int) () from /lib64/libQt5Core.so.5 #8 0x00007fccda841439 in KConfigIniBackend::lock() () from /lib64/libKF5ConfigCore.so.5 #9 0x00007fccda82b0e0 in KConfig::sync() () from /lib64/libKF5ConfigCore.so.5 #10 0x00007fccb7355ea5 in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () from /usr/lib64/qt5/plugins/org.kde.kwin.platforms/KWinX11Platform.so #11 0x00007fccd5e28326 in QMetaObject::activate(QObject*, int, int, void**) () from /lib64/libQt5Core.so.5 #12 0x00007fccd5e344d8 in QTimer::timerEvent(QTimerEvent*) () from /lib64/libQt5Core.so.5 #13 0x00007fccd5e2908b in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5 #14 0x00007fccd664996c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #15 0x00007fccd6651111 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #16 0x00007fccd5e0112a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5 #17 0x00007fccd5e4e38b in QTimerInfoList::activateTimers() () from /lib64/libQt5Core.so.5 #18 0x00007fccd5e4c710 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #19 0x00007fccd5e000ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #20 0x00007fccd5c5d643 in QThread::exec() () from /lib64/libQt5Core.so.5 #21 0x00007fccd5c61a1a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5 #22 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #23 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 4 (Thread 0x7fccb6210700 (LWP 1220)): #0 0x00007fccd50490d1 in ppoll () from /lib64/libc.so.6 #1 0x00007fccd5e4b051 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib64/libQt5Core.so.5 #2 0x00007fccd5e4c566 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #3 0x00007fccd5e000ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #4 0x00007fccd5c5d643 in QThread::exec() () from /lib64/libQt5Core.so.5 #5 0x00007fccdc91a735 in QQmlThreadPrivate::run() () from /lib64/libQt5Qml.so.5 #6 0x00007fccd5c61a1a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5 #7 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #8 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 3 (Thread 0x7fccb7d75700 (LWP 1174)): #0 0x00007fccd50490d1 in ppoll () from /lib64/libc.so.6 #1 0x00007fccd5e4b051 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () from /lib64/libQt5Core.so.5 #2 0x00007fccd5e4c566 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #3 0x00007fccd5e000ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #4 0x00007fccd5c5d643 in QThread::exec() () from /lib64/libQt5Core.so.5 #5 0x00007fccd79727a9 in QDBusConnectionManager::run() () from /lib64/libQt5DBus.so.5 #6 0x00007fccd5c61a1a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5 #7 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #8 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7fccbd44d700 (LWP 1127)): #0 0x00007fccd504900d in poll () from /lib64/libc.so.6 #1 0x00007fccd7740d10 in _xcb_conn_wait () from /lib64/libxcb.so.1 #2 0x00007fccd7742aa9 in xcb_wait_for_event () from /lib64/libxcb.so.1 #3 0x00007fccbe0fda19 in QXcbEventReader::run() () from /lib64/libQt5XcbQpa.so.5 #4 0x00007fccd5c61a1a in QThreadPrivate::start(void*) () from /lib64/libQt5Core.so.5 #5 0x00007fccd7e766ca in start_thread () from /lib64/libpthread.so.0 #6 0x00007fccd5054f6f in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7fccc4cb1940 (LWP 1082)): #0 0x00007fccd7e7c460 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007fccd5c6209a in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQt5Core.so.5 #2 0x00007fccd5c6161e in QThread::wait(unsigned long) () from /lib64/libQt5Core.so.5 #3 0x00007fccb7355b4e in KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint) () from /usr/lib64/qt5/plugins/org.kde.kwin.platforms/KWinX11Platform.so #4 0x00007fccde0581ed in KWin::Compositor::performCompositing() () from /lib64/libkwin.so.5 #5 0x00007fccd5e2908b in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5 #6 0x00007fccd664996c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #7 0x00007fccd6651111 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #8 0x00007fccd5e0112a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5 #9 0x00007fccd5e4e38b in QTimerInfoList::activateTimers() () from /lib64/libQt5Core.so.5 #10 0x00007fccd5e4c710 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #11 0x00007fccbe1767ed in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5XcbQpa.so.5 #12 0x00007fccd5e000ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #13 0x00007fccd5e07bac in QCoreApplication::exec() () from /lib64/libQt5Core.so.5 #14 0x00007fccde3e40b6 in kdemain () from /lib64/libkdeinit5_kwin_x11.so #15 0x00007fccd4f6d401 in __libc_start_main () from /lib64/libc.so.6 #16 0x000056551891fcca in _start () *** Bug 373485 has been marked as a duplicate of this bug. *** *** Bug 373637 has been marked as a duplicate of this bug. *** *** Bug 373755 has been marked as a duplicate of this bug. *** *** Bug 374282 has been marked as a duplicate of this bug. *** *** Bug 374664 has been marked as a duplicate of this bug. *** *** Bug 374755 has been marked as a duplicate of this bug. *** *** Bug 374664 has been marked as a duplicate of this bug. *** Created attachment 103593 [details]
New crash information added by DrKonqi
kwin_x11 (5.8.5) using Qt 5.6.2
- What I was doing when the application crashed:
I just rebooted the computer and logged in. It looks like it crashed when KDE was loading.
-- Backtrace (Reduced):
#6 0x00007fdd05d37acf in QLockFilePrivate::tryLock_sys() () at /lib64/libQt5Core.so.5
#7 0x00007fdd05ce36d0 in QLockFile::tryLock(int) () at /lib64/libQt5Core.so.5
#8 0x00007fdd0a870459 in KConfigIniBackend::lock() () at /lib64/libKF5ConfigCore.so.5
#9 0x00007fdd0a85a150 in KConfig::sync() () at /lib64/libKF5ConfigCore.so.5
#10 0x00007fdce75dfea5 in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () at /usr/lib64/qt5/plugins/org.kde.kwin.platforms/KWinX11Platform.so
plasma-desktop-5.8.5-1.fc25.x86_64 kwin-5.8.5-1.fc25.x86_64 Application: KWin (kwin_x11), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 185 62: movl (%rsp), %edi [Current thread is 1 (Thread 0x7ff5e58776c0 (LWP 1559))] Thread 10 (Thread 0x7ff5bdf09700 (LWP 1808)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5c3543c4b in cnd_wait (mtx=0x559faabda368, cond=0x559faabda390) at ../../../include/c11/threads_posix.h:159 #2 0x00007ff5c3543c4b in util_queue_thread_func (input=input@entry=0x559faab5ab10) at util/u_queue.c:76 #3 0x00007ff5c3543aa7 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87 #4 0x00007ff5f884c6ca in start_thread (arg=0x7ff5bdf09700) at pthread_create.c:333 #5 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 9 (Thread 0x7ff5be70a700 (LWP 1807)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5c3543c4b in cnd_wait (mtx=0x559faabda368, cond=0x559faabda390) at ../../../include/c11/threads_posix.h:159 #2 0x00007ff5c3543c4b in util_queue_thread_func (input=input@entry=0x559faab1f4e0) at util/u_queue.c:76 #3 0x00007ff5c3543aa7 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87 #4 0x00007ff5f884c6ca in start_thread (arg=0x7ff5be70a700) at pthread_create.c:333 #5 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 8 (Thread 0x7ff5bef0b700 (LWP 1806)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5c3543c4b in cnd_wait (mtx=0x559faabda368, cond=0x559faabda390) at ../../../include/c11/threads_posix.h:159 #2 0x00007ff5c3543c4b in util_queue_thread_func (input=input@entry=0x559faac1fbf0) at util/u_queue.c:76 #3 0x00007ff5c3543aa7 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87 #4 0x00007ff5f884c6ca in start_thread (arg=0x7ff5bef0b700) at pthread_create.c:333 #5 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 7 (Thread 0x7ff5bf70c700 (LWP 1805)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5c3543c4b in cnd_wait (mtx=0x559faabda368, cond=0x559faabda390) at ../../../include/c11/threads_posix.h:159 #2 0x00007ff5c3543c4b in util_queue_thread_func (input=input@entry=0x559faab5ab10) at util/u_queue.c:76 #3 0x00007ff5c3543aa7 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87 #4 0x00007ff5f884c6ca in start_thread (arg=0x7ff5bf70c700) at pthread_create.c:333 #5 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 6 (Thread 0x7ff5c0112700 (LWP 1804)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5c3543c4b in cnd_wait (mtx=0x559faac40568, cond=0x559faac40590) at ../../../include/c11/threads_posix.h:159 #2 0x00007ff5c3543c4b in util_queue_thread_func (input=input@entry=0x559faab1e160) at util/u_queue.c:76 #3 0x00007ff5c3543aa7 in impl_thrd_routine (p=<optimized out>) at ../../../include/c11/threads_posix.h:87 #4 0x00007ff5f884c6ca in start_thread (arg=0x7ff5c0112700) at pthread_create.c:333 #5 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 5 (Thread 0x7ff5d50e7700 (LWP 1803)): [KCrash Handler] #6 0x00007ff5f6775ccf in QString::toLocal8Bit() const & (this=0x559fab1d3ba0) at ../../src/corelib/tools/qstring.h:525 #7 0x00007ff5f6775ccf in QFile::encodeName(QString const&) (fileName=...) at ../../src/corelib/io/qfile.h:89 #8 0x00007ff5f6775ccf in QLockFilePrivate::tryLock_sys() (this=this@entry=0x559fab1d3ba0) at io/qlockfile_unix.cpp:190 #9 0x00007ff5f6722d8d in QLockFile::tryLock(int) (this=<optimized out>, timeout=timeout@entry=-1) at io/qlockfile.cpp:218 #10 0x00007ff5f6722f3a in QLockFile::lock() (this=<optimized out>) at io/qlockfile.cpp:187 #11 0x00007ff5fb24f489 in KConfigIniBackend::lock() (this=0x559faaa19180) at /usr/src/debug/kconfig-5.29.0/src/core/kconfigini.cpp:635 #12 0x00007ff5fb239130 in KConfigPrivate::lockLocal() (this=0x559faaa18ee0) at /usr/src/debug/kconfig-5.29.0/src/core/kconfig.cpp:114 #13 0x00007ff5fb239130 in KConfig::sync() (this=0x559faaa0ff70) at /usr/src/debug/kconfig-5.29.0/src/core/kconfig.cpp:433 #14 0x00007ff5d7de0ea5 in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () at /usr/lib64/qt5/plugins/org.kde.kwin.platforms/KWinX11Platform.so #15 0x00007ff5f67f9ae6 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ff5d50e67f0, r=0x559faaa91a90, this=<optimized out>) at ../../src/corelib/kernel/qobject_impl.h:101 #16 0x00007ff5f67f9ae6 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x559faaa91a90, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3723 #17 0x00007ff5f67fa057 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x559faaa91a90, m=m@entry=0x7ff5f6a0eda0 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3602 #18 0x00007ff5f68698e0 in QTimer::timeout(QTimer::QPrivateSignal) (this=this@entry=0x559faaa91a90) at .moc/moc_qtimer.cpp:198 #19 0x00007ff5f6805c98 in QTimer::timerEvent(QTimerEvent*) (this=0x559faaa91a90, e=<optimized out>) at kernel/qtimer.cpp:254 #20 0x00007ff5f67fa82b in QObject::event(QEvent*) (this=0x559faaa91a90, e=<optimized out>) at kernel/qobject.cpp:1285 #21 0x00007ff5f7014ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x559faaa91a90, e=0x7ff5d50e6b10) at kernel/qapplication.cpp:3799 #22 0x00007ff5f701c671 in QApplication::notify(QObject*, QEvent*) (this=0x7fff14d39410, receiver=0x559faaa91a90, e=0x7ff5d50e6b10) at kernel/qapplication.cpp:3556 #23 0x00007ff5f67d27aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x559faaa91a90, event=event@entry=0x7ff5d50e6b10) at kernel/qcoreapplication.cpp:988 #24 0x00007ff5f681fd3b in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ff5d50e6b10, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231 #25 0x00007ff5f681fd3b in QTimerInfoList::activateTimers() (this=this@entry=0x7ff5c8000980) at kernel/qtimerinfo_unix.cpp:644 #26 0x00007ff5f681cf1c in QEventDispatcherUNIXPrivate::activateTimers() (this=this@entry=0x7ff5c80008e0) at kernel/qeventdispatcher_unix.cpp:249 #27 0x00007ff5f681e078 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:514 #28 0x00007ff5f67d173a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff5d50e6c80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #29 0x00007ff5f662e5f3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #30 0x00007ff5f66329da in QThreadPrivate::start(void*) (arg=0x559faab758d0) at thread/qthread_unix.cpp:368 #31 0x00007ff5f884c6ca in start_thread (arg=0x7ff5d50e7700) at pthread_create.c:333 #32 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 4 (Thread 0x7ff5d617c700 (LWP 1664)): #0 0x00007ff5f5a1a0e1 in __GI_ppoll (fds=fds@entry=0x7ff5c4000ac8, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39 #1 0x00007ff5f681c9c1 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77 #2 0x00007ff5f681c9c1 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7ff5c4000ac8) at kernel/qcore_unix.cpp:81 #3 0x00007ff5f681c9c1 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7ff5c4000ac8, nfds=nfds@entry=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:102 #4 0x00007ff5f681ded6 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500 #5 0x00007ff5f67d173a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff5d617bc60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #6 0x00007ff5f662e5f3 in QThread::exec() (this=this@entry=0x559faab3d830) at thread/qthread.cpp:507 #7 0x00007ff5fd3294e5 in QQmlThreadPrivate::run() (this=0x559faab3d830) at /usr/src/debug/qtdeclarative-opensource-src-5.7.1/src/qml/qml/ftw/qqmlthread.cpp:147 #8 0x00007ff5f66329da in QThreadPrivate::start(void*) (arg=0x559faab3d830) at thread/qthread_unix.cpp:368 #9 0x00007ff5f884c6ca in start_thread (arg=0x7ff5d617c700) at pthread_create.c:333 #10 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 3 (Thread 0x7ff5dc8e2700 (LWP 1577)): #0 0x00007ff5f5a1a0e1 in __GI_ppoll (fds=fds@entry=0x7ff5d000ad68, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39 #1 0x00007ff5f681c9c1 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77 #2 0x00007ff5f681c9c1 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7ff5d000ad68) at kernel/qcore_unix.cpp:81 #3 0x00007ff5f681c9c1 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7ff5d000ad68, nfds=nfds@entry=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:102 #4 0x00007ff5f681ded6 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500 #5 0x00007ff5f67d173a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ff5dc8e1c40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #6 0x00007ff5f662e5f3 in QThread::exec() (this=this@entry=0x7ff5f83bd060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507 #7 0x00007ff5f8347739 in QDBusConnectionManager::run() (this=0x7ff5f83bd060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #8 0x00007ff5f66329da in QThreadPrivate::start(void*) (arg=0x7ff5f83bd060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368 #9 0x00007ff5f884c6ca in start_thread (arg=0x7ff5dc8e2700) at pthread_create.c:333 #10 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 2 (Thread 0x7ff5ddfef700 (LWP 1570)): #0 0x00007ff5f5a1a01d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007ff5f8115d10 in poll (__timeout=-1, __nfds=1, __fds=0x7ff5ddfeeb80) at /usr/include/bits/poll2.h:46 #2 0x00007ff5f8115d10 in _xcb_conn_wait (c=c@entry=0x559faa9a84b0, cond=cond@entry=0x559faa9a84f0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:479 #3 0x00007ff5f8117aa9 in xcb_wait_for_event (c=0x559faa9a84b0) at xcb_in.c:693 #4 0x00007ff5dec9fd69 in QXcbEventReader::run() (this=0x559faa9b0a80) at qxcbconnection.cpp:1343 #5 0x00007ff5f66329da in QThreadPrivate::start(void*) (arg=0x559faa9b0a80) at thread/qthread_unix.cpp:368 #6 0x00007ff5f884c6ca in start_thread (arg=0x7ff5ddfef700) at pthread_create.c:333 #7 0x00007ff5f5a25f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 1 (Thread 0x7ff5e58776c0 (LWP 1559)): #0 0x00007ff5f8852460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ff5f8115f87 in _xcb_conn_wait (c=c@entry=0x559faa9a84b0, cond=cond@entry=0x7fff14d38ca0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:447 #2 0x00007ff5f81177cf in wait_for_reply (c=c@entry=0x559faa9a84b0, request=929, e=e@entry=0x0) at xcb_in.c:516 #3 0x00007ff5f81178e2 in xcb_wait_for_reply (c=0x559faa9a84b0, request=929, e=0x0) at xcb_in.c:546 #4 0x00007ff5fea0a89f in KWin::Workspace::xStackingOrder() const () at /lib64/libkwin.so.5 #5 0x00007ff5fea69fb3 in KWin::Compositor::performCompositing() () at /lib64/libkwin.so.5 #6 0x00007ff5f67fa82b in QObject::event(QEvent*) (this=0x559faaa2d8c0, e=<optimized out>) at kernel/qobject.cpp:1285 #7 0x00007ff5f7014ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x559faaa2d8c0, e=0x7fff14d39170) at kernel/qapplication.cpp:3799 #8 0x00007ff5f701c671 in QApplication::notify(QObject*, QEvent*) (this=0x7fff14d39410, receiver=0x559faaa2d8c0, e=0x7fff14d39170) at kernel/qapplication.cpp:3556 #9 0x00007ff5f67d27aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x559faaa2d8c0, event=event@entry=0x7fff14d39170) at kernel/qcoreapplication.cpp:988 #10 0x00007ff5f681fd3b in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fff14d39170, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231 #11 0x00007ff5f681fd3b in QTimerInfoList::activateTimers() (this=this@entry=0x559faaa05a70) at kernel/qtimerinfo_unix.cpp:644 #12 0x00007ff5f681cf1c in QEventDispatcherUNIXPrivate::activateTimers() (this=this@entry=0x559faaa059d0) at kernel/qeventdispatcher_unix.cpp:249 #13 0x00007ff5f681e078 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:514 #14 0x00007ff5ded1979d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:68 #15 0x00007ff5f67d173a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff14d39300, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #16 0x00007ff5f67d923c in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1261 #17 0x00007ff5fedf60b6 in kdemain () at /lib64/libkdeinit5_kwin_x11.so #18 0x00007ff5f593e401 in __libc_start_main (main=0x559fa93aec90 <main>, argc=1, argv=0x7fff14d39598, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff14d39588) at ../csu/libc-start.c:289 #19 0x0000559fa93aecca in _start () *** Bug 378631 has been marked as a duplicate of this bug. *** *** Bug 378878 has been marked as a duplicate of this bug. *** *** Bug 379612 has been marked as a duplicate of this bug. *** *** Bug 380176 has been marked as a duplicate of this bug. *** *** Bug 380164 has been marked as a duplicate of this bug. *** *** Bug 380163 has been marked as a duplicate of this bug. *** Fedora 25, plasma-desktop-5.9.5-1.fc25.x86_64, qt5-qtbase-5.7.1-16.fc25.x86_64 driver amdgpu Application: KWin (kwin_x11), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 185 62: movl (%rsp), %edi [Current thread is 1 (Thread 0x7fa957d4a940 (LWP 1426))] Thread 5 (Thread 0x7fa92d7fa700 (LWP 1769)): #0 0x00007fa969cf2460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007fa96f6132f4 in QTWTF::TCMalloc_PageHeap::scavengerThread() (this=0x7fa96f6ff380 <QTWTF::pageheap_memory>) at /usr/src/debug/qtscript-opensource-src-5.7.1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359 #2 0x00007fa96f613339 in QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) (context=<optimized out>) at /usr/src/debug/qtscript-opensource-src-5.7.1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464 #3 0x00007fa969cec6ca in start_thread (arg=0x7fa92d7fa700) at pthread_create.c:333 #4 0x00007fa967157f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 4 (Thread 0x7fa942ffe700 (LWP 1684)): [KCrash Handler] #6 0x00007fa967ea9cef in QString::toLocal8Bit() const & (this=0x562c71f948c0) at ../../src/corelib/tools/qstring.h:525 #7 0x00007fa967ea9cef in QFile::encodeName(QString const&) (fileName=...) at ../../src/corelib/io/qfile.h:89 #8 0x00007fa967ea9cef in QLockFilePrivate::tryLock_sys() (this=this@entry=0x562c71f948c0) at io/qlockfile_unix.cpp:190 #9 0x00007fa967e56dbd in QLockFile::tryLock(int) (this=<optimized out>, timeout=timeout@entry=-1) at io/qlockfile.cpp:218 #10 0x00007fa967e56f6a in QLockFile::lock() (this=<optimized out>) at io/qlockfile.cpp:187 #11 0x00007fa96c77ac19 in KConfigIniBackend::lock() (this=0x562c717f1a00) at /usr/src/debug/kconfig-5.34.0/src/core/kconfigini.cpp:629 #12 0x00007fa96c7649d0 in KConfigPrivate::lockLocal() (this=0x562c717f1100) at /usr/src/debug/kconfig-5.34.0/src/core/kconfig.cpp:114 #13 0x00007fa96c7649d0 in KConfig::sync() (this=0x562c717f1840) at /usr/src/debug/kconfig-5.34.0/src/core/kconfig.cpp:433 #14 0x00007fa954c002c5 in KWin::X11StandalonePlatform::<lambda()>::operator() (__closure=<optimized out>) at /usr/src/debug/kwin-5.9.5/plugins/platforms/x11/standalone/x11_platform.cpp:224 #15 0x00007fa954c002c5 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:135 #16 0x00007fa954c002c5 in QtPrivate::Functor<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0>::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:192 #17 0x00007fa954c002c5 in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobject_impl.h:169 #18 0x00007fa967f2da56 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fa942ffd7f0, r=0x562c71843650, this=<optimized out>) at ../../src/corelib/kernel/qobject_impl.h:101 #19 0x00007fa967f2da56 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x562c71843650, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3723 #20 0x00007fa967f2dfc7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x562c71843650, m=m@entry=0x7fa968142da0 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3602 #21 0x00007fa967f9d770 in QTimer::timeout(QTimer::QPrivateSignal) (this=this@entry=0x562c71843650) at .moc/moc_qtimer.cpp:198 #22 0x00007fa967f39c08 in QTimer::timerEvent(QTimerEvent*) (this=0x562c71843650, e=<optimized out>) at kernel/qtimer.cpp:254 #23 0x00007fa967f2e79b in QObject::event(QEvent*) (this=0x562c71843650, e=<optimized out>) at kernel/qobject.cpp:1285 #24 0x00007fa968746ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x562c71843650, e=0x7fa942ffdb10) at kernel/qapplication.cpp:3799 #25 0x00007fa96874e671 in QApplication::notify(QObject*, QEvent*) (this=0x7ffee44436d0, receiver=0x562c71843650, e=0x7fa942ffdb10) at kernel/qapplication.cpp:3556 #26 0x00007fa967f066fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x562c71843650, event=event@entry=0x7fa942ffdb10) at kernel/qcoreapplication.cpp:988 #27 0x00007fa967f53ceb in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fa942ffdb10, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231 #28 0x00007fa967f53ceb in QTimerInfoList::activateTimers() (this=this@entry=0x7fa930000980) at kernel/qtimerinfo_unix.cpp:644 #29 0x00007fa967f50ecc in QEventDispatcherUNIXPrivate::activateTimers() (this=this@entry=0x7fa9300008e0) at kernel/qeventdispatcher_unix.cpp:249 #30 0x00007fa967f52028 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:514 #31 0x00007fa967f0568a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa942ffdc80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #32 0x00007fa967d625e3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #33 0x00007fa967d669ca in QThreadPrivate::start(void*) (arg=0x562c71930d10) at thread/qthread_unix.cpp:368 #34 0x00007fa969cec6ca in start_thread (arg=0x7fa942ffe700) at pthread_create.c:333 #35 0x00007fa967157f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 3 (Thread 0x7fa943fff700 (LWP 1587)): #0 0x00007fa96714c0e1 in __GI_ppoll (fds=fds@entry=0x7fa938000ac8, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39 #1 0x00007fa967f50971 in ppoll (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/bits/poll2.h:77 #2 0x00007fa967f50971 in qt_ppoll (timeout_ts=0x0, nfds=1, fds=0x7fa938000ac8) at kernel/qcore_unix.cpp:81 #3 0x00007fa967f50971 in qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x7fa938000ac8, nfds=nfds@entry=1, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:102 #4 0x00007fa967f51e86 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:500 #5 0x00007fa967f0568a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa943ffec60, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #6 0x00007fa967d625e3 in QThread::exec() (this=this@entry=0x562c71910b30) at thread/qthread.cpp:507 #7 0x00007fa96e8684e5 in QQmlThreadPrivate::run() (this=0x562c71910b30) at /usr/src/debug/qtdeclarative-opensource-src-5.7.1/src/qml/qml/ftw/qqmlthread.cpp:147 #8 0x00007fa967d669ca in QThreadPrivate::start(void*) (arg=0x562c71910b30) at thread/qthread_unix.cpp:368 #9 0x00007fa969cec6ca in start_thread (arg=0x7fa943fff700) at pthread_create.c:333 #10 0x00007fa967157f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 2 (Thread 0x7fa957d46700 (LWP 1493)): #0 0x00007fa96714c01d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007fa95e685166 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fa950003390, timeout=<optimized out>, context=0x7fa950001600) at gmain.c:4228 #2 0x00007fa95e685166 in g_main_context_iterate (context=context@entry=0x7fa950001600, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3924 #3 0x00007fa95e68527c in g_main_context_iteration (context=0x7fa950001600, may_block=may_block@entry=1) at gmain.c:3990 #4 0x00007fa967f546eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa9500008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007fa967f0568a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa957d45c40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #6 0x00007fa967d625e3 in QThread::exec() (this=this@entry=0x7fa96c50e060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507 #7 0x00007fa96c49afb9 in QDBusConnectionManager::run() (this=0x7fa96c50e060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #8 0x00007fa967d669ca in QThreadPrivate::start(void*) (arg=0x7fa96c50e060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368 #9 0x00007fa969cec6ca in start_thread (arg=0x7fa957d46700) at pthread_create.c:333 #10 0x00007fa967157f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 Thread 1 (Thread 0x7fa957d4a940 (LWP 1426)): #0 0x00007fa969cf2460 in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007fa967d6704a in QWaitConditionPrivate::wait(unsigned long) (time=18446744073709551615, this=0x562c71909510) at thread/qwaitcondition_unix.cpp:143 #2 0x00007fa967d6704a in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x562c7191ba78, mutex=mutex@entry=0x562c7191ba70, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215 #3 0x00007fa967d610d3 in QSemaphore::acquire(int) (this=this@entry=0x7ffee4442df0, n=n@entry=1) at thread/qsemaphore.cpp:143 #4 0x00007fa967f2d96e in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x562c71a63170, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffee4442e80) at kernel/qobject.cpp:3708 #5 0x00007fa967f2dfc7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x562c71a63170, m=m@entry=0x7fa968139ec0 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffee4442e80) at kernel/qobject.cpp:3602 #6 0x00007fa967f2e06f in QObject::destroyed(QObject*) (this=this@entry=0x562c71a63170, _t1=<optimized out>, _t1@entry=0x562c71a63170) at .moc/moc_qobject.cpp:213 #7 0x00007fa967f34d5a in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:920 #8 0x00007fa96c4f1b99 in QDBusServiceWatcher::~QDBusServiceWatcher() (this=0x562c71a63170, __in_chrg=<optimized out>) at qdbusservicewatcher.cpp:249 #9 0x00007fa967f341cc in QObjectPrivate::deleteChildren() (this=this@entry=0x562c71a63340) at kernel/qobject.cpp:1970 #10 0x00007fa967f352cf in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1041 #11 0x00007fa96d2b1b19 in KGlobalAccelSingleton::~KGlobalAccelSingleton() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/src/debug/kglobalaccel-5.34.0/src/kglobalaccel.cpp:213 #12 0x00007fa96d2b1b19 in (anonymous namespace)::Q_QGS_s_instance::Holder::~Holder() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/src/debug/kglobalaccel-5.34.0/src/kglobalaccel.cpp:221 #13 0x00007fa96708a410 in __run_exit_handlers (status=status@entry=1, listp=0x7fa9674105b8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:83 #14 0x00007fa96708a46a in __GI_exit (status=status@entry=1) at exit.c:105 #15 0x00007fa957439523 in QXcbConnection::processXcbEvents() (this=0x562c7174d670) at qxcbconnection.cpp:1705 #16 0x00007fa967f2e7e9 in QObject::event(QEvent*) (this=0x562c7174d670, e=<optimized out>) at kernel/qobject.cpp:1263 #17 0x00007fa968746ecc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x562c7174d670, e=0x7fa944005780) at kernel/qapplication.cpp:3799 #18 0x00007fa96874e671 in QApplication::notify(QObject*, QEvent*) (this=0x7ffee44436d0, receiver=0x562c7174d670, e=0x7fa944005780) at kernel/qapplication.cpp:3556 #19 0x00007fa967f066fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x562c7174d670, event=event@entry=0x7fa944005780) at kernel/qcoreapplication.cpp:988 #20 0x00007fa967f08de0 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fa944005780, receiver=<optimized out>) at kernel/qcoreapplication.h:231 #21 0x00007fa967f08de0 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x562c7174bc90) at kernel/qcoreapplication.cpp:1649 #22 0x00007fa967f51cfb in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x562c717d67a0, flags=...) at kernel/qeventdispatcher_unix.cpp:466 #23 0x00007fa9574b070d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:68 #24 0x00007fa967f0568a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffee44435c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #25 0x00007fa967f0d18c in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1261 #26 0x00007fa968234c1c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1633 #27 0x00007fa968746e25 in QApplication::exec() () at kernel/qapplication.cpp:2975 #28 0x00007fa97035f002 in kdemain(int, char**) (argc=<optimized out>, argv=0x7ffee4443858) at /usr/src/debug/kwin-5.9.5/main_x11.cpp:468 #29 0x00007fa967070401 in __libc_start_main (main=0x562c70dc8c90 <main>, argc=1, argv=0x7ffee4443858, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffee4443848) at ../csu/libc-start.c:289 #30 0x0000562c70dc8cca in _start () *** Bug 380829 has been marked as a duplicate of this bug. *** *** Bug 380999 has been marked as a duplicate of this bug. *** I confirm the bug on Plasma 5.10 *** Bug 383788 has been marked as a duplicate of this bug. *** Hello the problem here seems to be the fact that KConfig instances are *totally* not thread safe, and the freeze protection thread uses the same one as the main thread. When they stomp over each other, this crash ensues. I'll attach a proposed patch to use a different KConfig instance. On a deeper note, is that freeze check really necessary, safe and effective? I would say 99%+ of times the freeze alarm goes off, it is actually the system thrashing after startup/closing a big application (like a game), when all of the other applications are resizing their windows/repainting and not really an opengl driver freeze (of these duplicates, only bugs 372078, 373485 seem to be genuinely related to the graphics. Any thoughts on that? Created attachment 107663 [details]
Proposed patch
... oh and mind you, the patch actually changes the situation from an unexpected crash on SIGSEGV to a SIGABRT anticipated by the code, so DrKonqi gets triggered either way. This sould be thought over as well IMHO. The freeze check was introduced because we were experiencing freezes in the OpenGL driver. That's why it was introduced and implemented like that and has to stay like that to prevent freezes also in future. You are right that the problem is KConfig which is not thread safe. But I fear your patch won't help. The proper change would be to make KConfig thread safe or to guard the write access in KWin. Latter is not yet done as it's actually difficult to know where in KWin we have concurrent situations. A possibility might be to use a dedicated different config file which is only used here. Well the patch does actually help, because while the KConfig instances are not thread-safe, KSharedConfig::openConfig _is_ (see https://api.kde.org/frameworks/kconfig/html/classKSharedConfig.html). Access to the file is locked on the file level. Dreaming about making KConfig thread-safe (or almost any other Qt or KDE classes for that matter) is an utopia, and totally unnecessary in this case. As for the freezes in OpenGL, I don't deny them. However, the current method of detecting them gives an awful lot of false detections, and maybe something could be done about that. KSharedConfig::openConfig introduces a slight other problem: internally KWin uses the kwinApp()->config() to make it possible to have config not use kwinrc, but different config files (that is extensively used by e.g. autotests). The idea behind it is that we can swap out the config at runtime for different form factors (tablet -> notebook -> tablet). While that's not yet fully implemented, the config part is prepared. If we use openConfig again we don't know whether it's the same or not. If KSharedConfig::openConfig(kwinApp()->config()->name()) works as well, that might be a solution. Anyway if you have a patch, please put it on phabricator.kde.org and use #KWin as review group. *** Bug 384390 has been marked as a duplicate of this bug. *** (In reply to Martin Flöser from comment #30) > KSharedConfig::openConfig introduces a slight other problem: internally KWin > uses the kwinApp()->config() to make it possible to have config not use > kwinrc, but different config files (that is extensively used by e.g. > autotests). The idea behind it is that we can swap out the config at runtime > for different form factors (tablet -> notebook -> tablet). While that's not > yet fully implemented, the config part is prepared. If we use openConfig > again we don't know whether it's the same or not. Oh I see. > If KSharedConfig::openConfig(kwinApp()->config()->name()) works as well, > that might be a solution. Anyway if you have a patch, please put it on > phabricator.kde.org and use #KWin as review group. Good! If KSharedConfig::openConfig(kwinApp()->config()->name()) is acceptable in principle, so be it. I'll just test it a bit more. About the phabricator: is there some tutorial or manual about how to use it? I have to say I'm not that familiar with KDE dev process. > About the phabricator: is there some tutorial or manual about how to use it? > I have to say I'm not that familiar with KDE dev process. I found: https://community.kde.org/Infrastructure/Phabricator#Posting_a_Patch *** Bug 384836 has been marked as a duplicate of this bug. *** Created attachment 108324 [details]
New crash information added by DrKonqi
kwin_x11 (5.11.0) using Qt 5.7.1
I got this crash on plasma 5.11. Kwin started in "safe mode", but I'm able to switch back to full compositor in systemsettings.
-- Backtrace (Reduced):
#6 0x00007f9000f0446c in QLockFilePrivate::tryLock_sys() () from /usr/lib64/libQt5Core.so.5
#7 0x00007f9000eb19dd in QLockFile::tryLock(int) () from /usr/lib64/libQt5Core.so.5
#8 0x00007f90023d2409 in KConfigIniBackend::lock() () from /usr/lib64/libKF5ConfigCore.so.5
#9 0x00007f90023bbe30 in KConfig::sync() () from /usr/lib64/libKF5ConfigCore.so.5
#10 0x00007f8fec4ea98c in QtPrivate::QFunctorSlotObject<KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () from /usr/lib64/qt5/plugins/org.kde.kwin.platforms/KWinX11Platform.so
*** Bug 385902 has been marked as a duplicate of this bug. *** *** Bug 382949 has been marked as a duplicate of this bug. *** *** Bug 386159 has been marked as a duplicate of this bug. *** Git commit a7117e430454f8e39b1279695ff83bf73e1eb9ed by Martin Flöser. Committed on 05/11/2017 at 09:25. Pushed by graesslin into branch 'Plasma/5.11'. Don't use the global KConfig object on the OpenGL freeze detection thread Summary: This is meant to address Bug 372114. The problem here is that the KConfig object (and its derivatives), that the freeze detection thread needs to record the freeze, are not thread safe. When it happens that the main thread is in fact not frozen, it is possible that the two stomp on each other's KConfig object. The solution applied here is to use the KSharedConfig::openConfig function, which is thread safe, on the freeze detection thread. As was mentioned by Martin Flöser in the discussion, the thread needs to obey the name of the main config file of KWin, which can change in the future. As a secondary issue, this patch also turns off KCrash reporting for aborts due to a freeze being detected. IMO it is not very user friendly to still show a crash report to the user, even after this bug is fixed, for the deliberate SIGABRT. Maybe a less intrusive notification could be used to tell the user why effects are suddenly disabled? I've been using kwin with this change for several weeks now and it makes the restarts of kwin due to freezes unobtrusive. However, most (I would say almost all) of these freezes are actually instances where the system is being slow after eg. screen resolution is changed. FIXED-IN: 5.11.3 Reviewers: #kwin, graesslin Reviewed By: #kwin, graesslin Subscribers: ngraham, graesslin, anthonyfieroni, cfeck, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D8356 M +1 -1 plugins/platforms/x11/standalone/CMakeLists.txt M +5 -2 plugins/platforms/x11/standalone/x11_platform.cpp https://commits.kde.org/kwin/a7117e430454f8e39b1279695ff83bf73e1eb9ed *** Bug 391248 has been marked as a duplicate of this bug. *** *** Bug 390566 has been marked as a duplicate of this bug. *** |