Bug 341223 - KF5: Crash on close [BackgroundParser / ThreadWeaver / QSharedPointer]
Summary: KF5: Crash on close [BackgroundParser / ThreadWeaver / QSharedPointer]
Status: RESOLVED DUPLICATE of bug 359442
Alias: None
Product: kdevplatform
Classification: Developer tools
Component: language (other bugs)
Version First Reported In: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-24 13:15 UTC by Milian Wolff
Modified: 2016-03-09 08:23 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Milian Wolff 2014-11-24 13:15:55 UTC
Application: kdevelop (4.90.90)
 (Compiled from sources)
Qt Version: 5.5.0
Operating System: Linux 3.17.3-1-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
I closed KDevelop and it crashed. The backtrace indicates that its some issue in our usage of ThreadWeaver's API that relies on QSharedPointer.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff48c5da800 (LWP 4079))]

Thread 4 (Thread 0x7ff489123700 (LWP 4080)):
#0  0x00007ff4a0ad17bd in poll () from /usr/lib/libc.so.6
#1  0x00007ff49910a9f2 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007ff49910c56f in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007ff48c37c155 in QXcbEventReader::run (this=0xe456a0) at /ssd/milian/projects/qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1089
#4  0x00007ff4a16b76bf in QThreadPrivate::start (arg=0xe456a0) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:337
#5  0x00007ff499fe9314 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007ff4a0ada5bd in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7ff4738c2700 (LWP 4086)):
#0  0x00007ff499feec78 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007ff4a16b8d2b in QWaitConditionPrivate::wait_relative (this=0x25baf90, time=1000) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:118
#2  0x00007ff4a16b8d58 in QWaitConditionPrivate::wait (this=0x25baf90, time=1000) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:126
#3  0x00007ff4a16b8b47 in QWaitCondition::wait (this=0x25ba4b8, mutex=0x25ba4c0, time=1000) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:200
#4  0x00007ff49f1f48aa in KDevelop::DUChainPrivate::CleanupThread::run (this=0x25ba4a0) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/language/duchain/duchain.cpp:280
#5  0x00007ff4a16b76bf in QThreadPrivate::start (arg=0x25ba4a0) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:337
#6  0x00007ff499fe9314 in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007ff4a0ada5bd in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7ff472740700 (LWP 4097)):
#0  0x00007ff4981b7210 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#1  0x00007ff4981b7bbb in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007ff4981b7dac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007ff4a1954e59 in QEventDispatcherGlib::processEvents (this=0x7ff4680008c0, flags=...) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:420
#4  0x00007ff4a18d7a54 in QEventLoop::processEvents (this=0x7ff47273fd60, flags=...) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:128
#5  0x00007ff4a18d7d2d in QEventLoop::exec (this=0x7ff47273fd60, flags=...) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:204
#6  0x00007ff4a16b0176 in QThread::exec (this=0x7ff4a5282e18 <KDevelop::(anonymous namespace)::Q_QGS_s_parsingThread::innerFunction()::holder+8>) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qthread.cpp:503
#7  0x00007ff4a16b0318 in QThread::run (this=0x7ff4a5282e18 <KDevelop::(anonymous namespace)::Q_QGS_s_parsingThread::innerFunction()::holder+8>) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qthread.cpp:570
#8  0x00007ff4a16b76bf in QThreadPrivate::start (arg=0x7ff4a5282e18 <KDevelop::(anonymous namespace)::Q_QGS_s_parsingThread::innerFunction()::holder+8>) at /ssd/milian/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:337
#9  0x00007ff499fe9314 in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007ff4a0ada5bd in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ff48c5da800 (LWP 4079)):
[KCrash Handler]
#6  0x0000000000000000 in ?? ()
#7  0x00007ff49f1d370d in QtSharedPointer::CustomDeleter<ThreadWeaver::JobInterface, QtSharedPointer::NormalDeleter>::execute (this=0x53e9770) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:189
#8  0x00007ff49f1d1a4d in QtSharedPointer::ExternalRefCountWithCustomDeleter<ThreadWeaver::JobInterface, QtSharedPointer::NormalDeleter>::deleter (self=0x53e9760) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:207
#9  0x00007ff4a09a9861 in QtSharedPointer::ExternalRefCountData::destroy (this=0x53e9760) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:151
#10 0x00007ff4a09aaa42 in QSharedPointer<ThreadWeaver::JobInterface>::deref (d=0x53e9760) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:469
#11 0x00007ff4a09a9ddc in QSharedPointer<ThreadWeaver::JobInterface>::deref (this=0x7ff4502d0140) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:464
#12 0x00007ff4a09a9a44 in QSharedPointer<ThreadWeaver::JobInterface>::~QSharedPointer (this=0x7ff4502d0140, __in_chrg=<optimized out>) at /ssd/milian/projects/compiled/qt5/include/QtCore/qsharedpointer_impl.h:305
#13 0x00007ff4a09b14f4 in QtMetaTypePrivate::QMetaTypeFunctionHelper<QSharedPointer<ThreadWeaver::JobInterface>, true>::Delete (t=0x7ff4502d0140) at /ssd/milian/projects/compiled/qt5/include/QtCore/qmetatype.h:712
#14 0x00007ff4a18eec8e in (anonymous namespace)::TypeDestroyer::customTypeDestroyer (type=1365, where=0x7ff4502d0140) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qmetatype.cpp:1671
#15 0x00007ff4a18eeb96 in (anonymous namespace)::TypeDestroyer::delegate (this=0x7fff2121faf0, where=0x7ff4502d0140) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qmetatype.cpp:1657
#16 0x00007ff4a18f0c30 in QMetaTypeSwitcher::switcher<void, (anonymous namespace)::TypeDestroyer> (logic=..., type=1365, data=0x7ff4502d0140) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qmetatypeswitcher_p.h:75
#17 0x00007ff4a18eece7 in QMetaType::destroy (type=1365, data=0x7ff4502d0140) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qmetatype.cpp:1687
#18 0x00007ff4a1917303 in QMetaCallEvent::~QMetaCallEvent (this=0x7ff450ddf4a0, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:464
#19 0x00007ff4a19173b2 in QMetaCallEvent::~QMetaCallEvent (this=0x7ff450ddf4a0, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:475
#20 0x00007ff4a18dc488 in QCoreApplication::removePostedEvents (receiver=0x1754eb0, eventType=0) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1613
#21 0x00007ff4a1916946 in QObjectPrivate::~QObjectPrivate (this=0x1750760, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:234
#22 0x00007ff4a1916a08 in QObjectPrivate::~QObjectPrivate (this=0x1750760, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:245
#23 0x00007ff4a19246e8 in QScopedPointerDeleter<QObjectData>::cleanup (pointer=0x1750760) at ../../include/QtCore/../../../src/corelib/tools/qscopedpointer.h:54
#24 0x00007ff4a1922cd3 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer (this=0x1754eb8, __in_chrg=<optimized out>) at ../../include/QtCore/../../../src/corelib/tools/qscopedpointer.h:101
#25 0x00007ff4a19181e1 in QObject::~QObject (this=0x1754eb0, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:882
#26 0x00007ff49f1c7798 in KDevelop::BackgroundParser::~BackgroundParser (this=0x1754eb0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:491
#27 0x00007ff49f1c77d6 in KDevelop::BackgroundParser::~BackgroundParser (this=0x1754eb0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/language/backgroundparser/backgroundparser.cpp:494
#28 0x00007ff4a1919b56 in QObjectPrivate::deleteChildren (this=0x1751730) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:1950
#29 0x00007ff4a191816e in QObject::~QObject (this=0x1754f00, __in_chrg=<optimized out>) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:1030
#30 0x00007ff4a50ad33c in KDevelop::ILanguageController::~ILanguageController (this=0x1754f00, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/interfaces/ilanguagecontroller.h:38
#31 0x00007ff4a50ab3f4 in KDevelop::LanguageController::~LanguageController (this=0x1754f00, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/shell/languagecontroller.cpp:156
#32 0x00007ff4a50ab428 in KDevelop::LanguageController::~LanguageController (this=0x1754f00, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/shell/languagecontroller.cpp:159
#33 0x00007ff4a506be9c in KDevelop::CorePrivate::~CorePrivate (this=0x1455140, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/shell/core.cpp:293
#34 0x00007ff4a506c587 in KDevelop::Core::~Core (this=0x1448df0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/shell/core.cpp:366
#35 0x00007ff4a506c5de in KDevelop::Core::~Core (this=0x1448df0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevplatform/shell/core.cpp:368
#36 0x00007ff4a1920af1 in qDeleteInEventHandler (o=0x1448df0) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:4392
#37 0x00007ff4a19184d2 in QObject::event (this=0x1448df0, e=0x2f8ef70) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qobject.cpp:1236
#38 0x00007ff4a241b49a in QApplicationPrivate::notify_helper (this=0xe17f00, receiver=0x1448df0, e=0x2f8ef70) at /ssd/milian/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3703
#39 0x00007ff4a2418c26 in QApplication::notify (this=0x7fff212214a0, receiver=0x1448df0, e=0x2f8ef70) at /ssd/milian/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3145
#40 0x00007ff4a18dadb0 in QCoreApplication::notifyInternal (this=0x7fff212214a0, receiver=0x1448df0, event=0x2f8ef70) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:932
#41 0x00007ff4a18dea11 in QCoreApplication::sendEvent (receiver=0x1448df0, event=0x2f8ef70) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.h:228
#42 0x00007ff4a18dc0e9 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0xd9a7e0) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1536
#43 0x00007ff4a18dba98 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=52) at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1394
#44 0x00007ff4a18db520 in QCoreApplication::exec () at /ssd/milian/projects/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1192
#45 0x00007ff4a1cccf68 in QGuiApplication::exec () at /ssd/milian/projects/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:1529
#46 0x00007ff4a2418607 in QApplication::exec () at /ssd/milian/projects/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2961
#47 0x00000000004196ee in main (argc=3, argv=0x7fff21223328) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/app/main.cpp:596


Reproducible: Didn't try

Steps to Reproduce:
close kdevelop while background parse jobs are running

Actual Results:  
crash

Expected Results:  
no crash
Comment 1 Kevin Funk 2016-03-09 08:23:26 UTC

*** This bug has been marked as a duplicate of bug 359442 ***