Bug 372114 - Crash in threaded KWin::X11StandalonePlatform::createOpenGLSafePoint
Summary: Crash in threaded KWin::X11StandalonePlatform::createOpenGLSafePoint
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: platform-x11-standalone (show other bugs)
Version: 5.8.3
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 372078 373358 373485 373637 373755 374282 374664 374755 378631 378878 379612 380163 380164 380176 380829 380999 382949 383788 384390 384836 385902 386159 390566 391248 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-11-05 17:46 UTC by Sam
Modified: 2018-03-01 01:52 UTC (History)
31 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.11.3


Attachments
New crash information added by DrKonqi (6.99 KB, text/plain)
2017-01-22 22:40 UTC, Max
Details
Proposed patch (956 bytes, patch)
2017-09-03 12:36 UTC, Jiri Palecek
Details
New crash information added by DrKonqi (8.28 KB, text/plain)
2017-10-13 04:43 UTC, Marian Kyral
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sam 2016-11-05 17:46:31 UTC
Application: kwin_x11 (5.8.3)

Qt Version: 5.7.0
Frameworks Version: 5.27.0
Operating System: Linux 4.7.5-1-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
I was starting KDE through startx from the terminal when I recived an error saying "Kwin crashed unexpectedly".

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

Thread 7 (Thread 0x7f3327a46700 (LWP 888)):
#0  0x00007f335b0b410f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f335e43fac4 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007f335e43fb09 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7f33290ce700 (LWP 804)):
#0  0x00007f335b0b410f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f333d14988b in  () at /usr/lib/xorg/modules/dri/r600_dri.so
#2  0x00007f333d1496e7 in  () at /usr/lib/xorg/modules/dri/r600_dri.so
#3  0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7f333e305700 (LWP 801)):
[KCrash Handler]
#6  0x00007f335f4412d2 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007f335f3de856 in QLockFile::tryLock(int) () at /usr/lib/libQt5Core.so.5
#8  0x00007f33612092d9 in  () at /usr/lib/libKF5ConfigCore.so.5
#9  0x00007f33611ed2b0 in KConfig::sync() () at /usr/lib/libKF5ConfigCore.so.5
#10 0x00007f3344fdfdf5 in  () at /usr/lib/qt/plugins/org.kde.kwin.platforms/KWinX11Platform.so
#11 0x00007f335f4d99ce in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#12 0x00007f335f4e66d8 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007f335f4da473 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#14 0x00007f3360192e0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f336019a581 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f335f4adde0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#17 0x00007f335f5016ae in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#18 0x00007f335f4ff618 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#19 0x00007f335f4ac23a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007f335f2cf0f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#21 0x00007f335f2d3d78 in  () at /usr/lib/libQt5Core.so.5
#22 0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#23 0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f333f356700 (LWP 796)):
#0  0x00007f3361e7e551 in ppoll () at /usr/lib/libc.so.6
#1  0x00007f335f4fdac9 in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007f335f4ff3b8 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007f335f4ac23a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f335f2cf0f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007f3359dfc2d5 in  () at /usr/lib/libQt5Qml.so.5
#6  0x00007f335f2d3d78 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f3345a06700 (LWP 750)):
#0  0x00007ffdfbba1959 in  ()
#1  0x00007ffdfbba1c2d in clock_gettime ()
#2  0x00007f3361e946b6 in clock_gettime () at /usr/lib/libc.so.6
#3  0x00007f335f3791a1 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007f335f5003a9 in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5
#5  0x00007f335f500955 in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5
#6  0x00007f335f4ff694 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007f335f4ac23a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#8  0x00007f335f2cf0f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#9  0x00007f3358face55 in  () at /usr/lib/libQt5DBus.so.5
#10 0x00007f335f2d3d78 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#12 0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f3347bc6700 (LWP 741)):
#0  0x00007f3361e7e48d in poll () at /usr/lib/libc.so.6
#1  0x00007f3360fab8e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007f3360fad679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007f3348681449 in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007f335f2d3d78 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007f335b0ae454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f3361e877df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f3362444840 (LWP 724)):
#0  0x00007f335b0b410f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f335f2d4c2b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5
#2  0x00007f335f2d391e in QThread::wait(unsigned long) () at /usr/lib/libQt5Core.so.5
#3  0x00007f3344fdfa9e in KWin::X11StandalonePlatform::createOpenGLSafePoint(KWin::Platform::OpenGLSafePoint) () at /usr/lib/qt/plugins/org.kde.kwin.platforms/KWinX11Platform.so
#4  0x00007f3361a09ce6 in KWin::Compositor::performCompositing() () at /usr/lib/libkwin.so.5
#5  0x00007f335f4da473 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#6  0x00007f3360192e0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#7  0x00007f336019a581 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#8  0x00007f335f4adde0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#9  0x00007f335f5016ae in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#10 0x00007f335f4ff618 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#11 0x00007f33486fa0dd in  () at /usr/lib/libQt5XcbQpa.so.5
#12 0x00007f335f4ac23a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#13 0x00007f335f4b473c in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#14 0x00007f3362148495 in kdemain () at /usr/lib/libkdeinit5_kwin_x11.so
#15 0x00007f3361dbf291 in __libc_start_main () at /usr/lib/libc.so.6
#16 0x000000000040069a in _start ()

Reported using DrKonqi
Comment 1 Martin Flöser 2016-11-05 20:47:14 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.
Comment 2 Christoph Feck 2016-11-06 22:28:37 UTC
*** Bug 372078 has been marked as a duplicate of this bug. ***
Comment 3 Martin Flöser 2016-12-06 18:07:38 UTC
*** Bug 373358 has been marked as a duplicate of this bug. ***
Comment 4 Martin Flöser 2016-12-06 18:08:04 UTC
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 ()
Comment 5 Martin Flöser 2016-12-10 08:55:43 UTC
*** Bug 373485 has been marked as a duplicate of this bug. ***
Comment 6 Martin Flöser 2016-12-14 17:49:11 UTC
*** Bug 373637 has been marked as a duplicate of this bug. ***
Comment 7 Martin Flöser 2016-12-17 13:34:52 UTC
*** Bug 373755 has been marked as a duplicate of this bug. ***
Comment 8 Martin Flöser 2016-12-29 11:34:24 UTC
*** Bug 374282 has been marked as a duplicate of this bug. ***
Comment 9 Martin Flöser 2017-01-08 10:19:14 UTC
*** Bug 374664 has been marked as a duplicate of this bug. ***
Comment 10 Martin Flöser 2017-01-08 17:26:51 UTC
*** Bug 374755 has been marked as a duplicate of this bug. ***
Comment 11 Christoph Feck 2017-01-10 19:45:12 UTC
*** Bug 374664 has been marked as a duplicate of this bug. ***
Comment 12 Max 2017-01-22 22:40:45 UTC
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
Comment 13 Germano Massullo 2017-01-27 09:42:38 UTC
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 ()
Comment 14 Martin Flöser 2017-04-10 20:09:39 UTC
*** Bug 378631 has been marked as a duplicate of this bug. ***
Comment 15 Martin Flöser 2017-04-17 16:17:59 UTC
*** Bug 378878 has been marked as a duplicate of this bug. ***
Comment 16 Martin Flöser 2017-05-07 19:37:30 UTC
*** Bug 379612 has been marked as a duplicate of this bug. ***
Comment 17 Nick 2017-05-25 10:32:28 UTC
*** Bug 380176 has been marked as a duplicate of this bug. ***
Comment 18 Martin Flöser 2017-05-25 16:00:46 UTC
*** Bug 380164 has been marked as a duplicate of this bug. ***
Comment 19 Martin Flöser 2017-05-25 16:02:49 UTC
*** Bug 380163 has been marked as a duplicate of this bug. ***
Comment 20 Germano Massullo 2017-06-01 07:39:04 UTC
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 ()
Comment 21 Christoph Feck 2017-06-06 15:31:30 UTC
*** Bug 380829 has been marked as a duplicate of this bug. ***
Comment 22 Christoph Feck 2017-06-09 03:03:56 UTC
*** Bug 380999 has been marked as a duplicate of this bug. ***
Comment 23 Germano Massullo 2017-07-31 06:18:29 UTC
I confirm the bug on Plasma 5.10
Comment 24 Martin Flöser 2017-08-21 15:54:47 UTC
*** Bug 383788 has been marked as a duplicate of this bug. ***
Comment 25 Jiri Palecek 2017-09-03 12:34:20 UTC
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?
Comment 26 Jiri Palecek 2017-09-03 12:36:33 UTC
Created attachment 107663 [details]
Proposed patch
Comment 27 Jiri Palecek 2017-09-03 13:09:23 UTC
... 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.
Comment 28 Martin Flöser 2017-09-03 14:34:32 UTC
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.
Comment 29 Jiri Palecek 2017-09-03 15:48:03 UTC
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.
Comment 30 Martin Flöser 2017-09-03 19:31:22 UTC
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.
Comment 31 Martin Flöser 2017-09-10 07:16:21 UTC
*** Bug 384390 has been marked as a duplicate of this bug. ***
Comment 32 Jiri Palecek 2017-09-12 18:53:23 UTC
(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.
Comment 33 Martin Flöser 2017-09-12 18:57:57 UTC
> 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
Comment 34 Martin Flöser 2017-09-19 15:21:55 UTC
*** Bug 384836 has been marked as a duplicate of this bug. ***
Comment 35 Marian Kyral 2017-10-13 04:43:39 UTC
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
Comment 36 Martin Flöser 2017-10-18 15:33:13 UTC
*** Bug 385902 has been marked as a duplicate of this bug. ***
Comment 37 Martin Flöser 2017-10-22 17:07:07 UTC
*** Bug 382949 has been marked as a duplicate of this bug. ***
Comment 38 Martin Flöser 2017-10-25 05:46:26 UTC
*** Bug 386159 has been marked as a duplicate of this bug. ***
Comment 39 Martin Flöser 2017-11-05 09:45:44 UTC
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
Comment 40 Christoph Feck 2018-02-28 22:52:13 UTC
*** Bug 391248 has been marked as a duplicate of this bug. ***
Comment 41 Christoph Feck 2018-03-01 01:52:10 UTC
*** Bug 390566 has been marked as a duplicate of this bug. ***