Application: kdevelop (5.2.1) Qt Version: 5.10.1 Frameworks Version: 5.44.0 Operating System: Linux 4.15.14-1-zen x86_64 Distribution (Platform): Archlinux Packages -- Information about the crash: I had a Python script running and when I click "Stop All" Kdevelop sometimes crashes. The crash can be reproduced sometimes. -- Backtrace: Application: KDevelop (kdevelop), signal: Segmentation fault Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f682bae7dc0 (LWP 1548))] Thread 14 (Thread 0x7f67b6ffd700 (LWP 1647)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f6828836fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f681d31552f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f681d319719 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f681d317583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #7 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7f67b77fe700 (LWP 1646)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f6828836fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f681d31552f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f681d319719 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007f681d317583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #11 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7f67b7fff700 (LWP 1645)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f6828836fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f681d31552f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f681d319719 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f681d317583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #9 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7f67c492b700 (LWP 1644)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f6828836fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f681d31552f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f681d319719 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007f681d317583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #11 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7f67c512c700 (LWP 1643)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f6828836fac in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5 #2 0x00007f681d31552f in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #3 0x00007f681d319719 in () at /usr/lib/libKF5ThreadWeaver.so.5 #4 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007f681d319772 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007f681d3146fd in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007f681d317583 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #11 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7f67d3fff700 (LWP 1642)): #0 0x00007f682813397b in poll () at /usr/lib/libc.so.6 #1 0x00007f681ed02613 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007f682635f749 in () at /usr/lib/libKDevPlatformLanguage.so.52 #7 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #8 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7f67d37fe700 (LWP 1570)): #0 0x00007f682813397b in poll () at /usr/lib/libc.so.6 #1 0x00007f681ed02613 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007f67d1065b6a in () at /usr/lib/qt/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #7 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #8 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7f67d919f700 (LWP 1560)): #0 0x00007f681ed495b4 in g_mutex_unlock () at /usr/lib/libglib-2.0.so.0 #1 0x00007f681ed01b29 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed0253e in () at /usr/lib/libglib-2.0.so.0 #3 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #7 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #8 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7f67db38e700 (LWP 1559)): #0 0x00007f682812f3d8 in read () at /usr/lib/libc.so.6 #1 0x00007f681ed48191 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed020e8 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #3 0x00007f681ed025b6 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #5 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #7 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #8 0x00007f6821382379 in () at /usr/lib/libQt5Qml.so.5 #9 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #10 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #11 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7f67dfdaf700 (LWP 1553)): #0 0x00007f68219073bd in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f68284b25bd in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864 #2 0x00007f68284b25bd in std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53 #3 0x00007f67e750c379 in () at /usr/lib/libQt5WebKit.so.5 #4 0x00007f67e750c4c9 in () at /usr/lib/libQt5WebKit.so.5 #5 0x00007f68284b8b9f in std::execute_native_thread_routine(void*) (__p=0x56092eff0770) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83 #6 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #7 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7f67ef5b7700 (LWP 1551)): #0 0x00007f682812f3d8 in read () at /usr/lib/libc.so.6 #1 0x00007f681ed48191 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed020e8 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #3 0x00007f681ed025b6 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #5 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #6 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #7 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #8 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #9 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7f67f0207700 (LWP 1550)): #0 0x00007ffd1d9f2969 in () #1 0x00007ffd1d9f2c20 in clock_gettime () #2 0x00007f682814b746 in clock_gettime () at /usr/lib/libc.so.6 #3 0x00007f6828a7eb52 in () at /usr/lib/libQt5Core.so.5 #4 0x00007f6828a7d2ea in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5 #5 0x00007f6828a7d8c6 in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5 #6 0x00007f6828a7efaf in () at /usr/lib/libQt5Core.so.5 #7 0x00007f681ed01b39 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #8 0x00007f681ed0253e in () at /usr/lib/libglib-2.0.so.0 #9 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #10 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #11 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #12 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #13 0x00007f6826252af1 in () at /usr/lib/libKDevPlatformLanguage.so.52 #14 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #15 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #16 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f67fa65a700 (LWP 1549)): #0 0x00007f682813397b in poll () at /usr/lib/libc.so.6 #1 0x00007f681ed02613 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007f6828a7f264 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #4 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #5 0x00007f682883072e in QThread::exec() () at /usr/lib/libQt5Core.so.5 #6 0x00007f682a7c5416 in () at /usr/lib/libQt5DBus.so.5 #7 0x00007f6828835acd in () at /usr/lib/libQt5Core.so.5 #8 0x00007f682190108c in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f682813de7f in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f682bae7dc0 (LWP 1548)): [KCrash Handler] #6 0x00007f6828920918 in QDebug::putString(QChar const*, unsigned long) () at /usr/lib/libQt5Core.so.5 #7 0x00007f682b6b581d in () at /usr/lib/libKDevPlatformShell.so.52 #8 0x00007f6828a5373f in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #9 0x00007f682899b6b2 in QProcess::errorOccurred(QProcess::ProcessError) () at /usr/lib/libQt5Core.so.5 #10 0x00007f68289a26f1 in () at /usr/lib/libQt5Core.so.5 #11 0x00007f68289a7995 in () at /usr/lib/libQt5Core.so.5 #12 0x00007f682899cecc in QProcess::waitForFinished(int) () at /usr/lib/libQt5Core.so.5 #13 0x00007f682899d852 in QProcess::~QProcess() () at /usr/lib/libQt5Core.so.5 #14 0x00007f6829edc87a in KProcess::~KProcess() () at /usr/lib/libKF5CoreAddons.so.5 #15 0x00007f6828a5115d in QObjectPrivate::deleteChildren() () at /usr/lib/libQt5Core.so.5 #16 0x00007f6828a5ad2c in QObject::~QObject() () at /usr/lib/libQt5Core.so.5 #17 0x00007f67ef7ff804 in () at /usr/lib/qt/plugins/kdevplatform/30/kdevexecutescript.so #18 0x00007f6828a54081 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5 #19 0x00007f68297a0fec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #20 0x00007f68297a89c6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #21 0x00007f6828a22cf0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #22 0x00007f6828a25956 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5 #23 0x00007f6828a7fc54 in () at /usr/lib/libQt5Core.so.5 #24 0x00007f681ed02458 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #25 0x00007f681ed026a1 in () at /usr/lib/libglib-2.0.so.0 #26 0x00007f681ed0272e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #27 0x00007f6828a7f241 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #28 0x00007f68003264e2 in () at /usr/lib/libQt5WaylandClient.so.5 #29 0x00007f6828a2132b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #30 0x00007f6828a2a728 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #31 0x000056092cd649e4 in () #32 0x00007f6828068f4a in __libc_start_main () at /usr/lib/libc.so.6 #33 0x000056092cd64f9a in _start () Reported using DrKonqi
Hm, I don't see anything wrong in the code in kdevplatform here. The location where the crash is happening is likely: ``` #if QT_VERSION < 0x050600 connect(process, static_cast<void(QProcess::*)(QProcess::ProcessError)>(&QProcess::error), #else connect(process, &QProcess::errorOccurred, #endif this, [](QProcess::ProcessError error) { qCWarning(SHELL) << "process finished with error:" << error; }); ``` Specifically, this line seems to cause a crash: > qCWarning(SHELL) << "process finished with error:" << error; But: I don't see how `error` can be corrupted, also given that the QProcess instance is still fully intact at that time...
Ah, that code changed recently. Issue fixed by: https://phabricator.kde.org/R32:71f7bed96dd0954635c2793c681ba8a5da9ba318 Thus fixed in 5.2.2 (to be released).
Well that's good to know.