https://bugs.kde.org/show_bug.cgi?id=363753
Bug ID: 363753 Summary: crash-at-exit in QtCurve::Style::disconnectDBus Product: QtCurve Version: git Platform: Compiled Sources OS: OS X Status: UNCONFIRMED Severity: crash Priority: NOR Component: qt5 Assignee: yyc1...@gmail.com Reporter: rjvber...@gmail.com CC: h...@kde.org I've just experience a crash exiting from KDevelop5, leading to the backtrace attached below. I'm looking into it. It is not a regular event, fortunately. It's probably related to the recent changes from March 19th 2016 (I only updated yesterday). It looks like a double free, or a double disconnect in this case, calling QDbusConnection::sessionBus() when there is no more connection (=> this==NULL in frame #12). Reproducible: Couldn't Reproduce Actual Results: Application: kdevelop (kdevelop), signal: Segmentation fault: 11 (lldb) process attach --pid 18494 Process 18494 stopped Executable module set to "/Applications/MacPorts/KF5/kdevelop.app/Contents/MacOS/kdevelop.bin". Architecture set to: x86_64-apple-macosx. (lldb) set set term-width 200 (lldb) thread info thread #1: tid = 0x12ad634, 0x00007fff85129e20 libsystem_kernel.dylib`__wait4 + 8, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP (lldb) bt all * thread #1: tid = 0x12ad634, 0x00007fff85129e20 libsystem_kernel.dylib`__wait4 + 8, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff85129e20 libsystem_kernel.dylib`__wait4 + 8 frame #1: 0x00000001070c6fde libKF5Crash.5.dylib`KCrash::startProcess(int, char const**, bool) [inlined] startProcessInternal(argc=<unavailable>, directly=<unavailable>) + 125 at kcrash.cpp:641 frame #2: 0x00000001070c6f61 libKF5Crash.5.dylib`KCrash::startProcess(argc=<unavailable>, argv=<unavailable>, waitAndExit=<unavailable>) + 17 at kcrash.cpp:623 frame #3: 0x00000001070c6de9 libKF5Crash.5.dylib`KCrash::defaultCrashHandler(sig=<unavailable>) + 1049 at kcrash.cpp:527 frame #4: 0x00007fff8b9035aa libsystem_platform.dylib`_sigtramp + 26 frame #5: 0x000000010a30b15f QtCore`QMutex::lock() [inlined] std::__1::__atomic_base<QMutexData*, false>::compare_exchange_strong(__m=<unavailable>) + 1 at atomic:622 frame #6: 0x000000010a30b15e QtCore`QMutex::lock() [inlined] bool QAtomicOps<QMutexData*>::testAndSetAcquire<QMutexData*>(std::__1::atomic<QMutexData*>&, QMutexData*, QMutexData*, QMutexData**) at qatomic_cxx11.h:158 frame #7: 0x000000010a30b15e QtCore`QMutex::lock() [inlined] QBasicAtomicPointer<QMutexData>::testAndSetAcquire(QMutexData*, QMutexData*, QMutexData*&) at qbasicatomic.h:276 frame #8: 0x000000010a30b15e QtCore`QMutex::lock() [inlined] QBasicMutex::fastTryLock(QMutexData*&) at qmutex.h:82 frame #9: 0x000000010a30b15e QtCore`QMutex::lock(this=0x0000000000000020) + 14 at qmutex.cpp:219 frame #10: 0x0000000108b60f31 QtDBus`QDBusConnectionManager::busConnection(QDBusConnection::BusType) [inlined] QMutexLocker::QMutexLocker(m=0x0000000000000020) + 81 at qmutex.h:128 frame #11: 0x0000000108b60f29 QtDBus`QDBusConnectionManager::busConnection(QDBusConnection::BusType) [inlined] QMutexLocker::QMutexLocker(m=0x0000000000000020) at qmutex.h:131 frame #12: 0x0000000108b60f29 QtDBus`QDBusConnectionManager::busConnection(this=0x0000000000000000, type=SessionBus) + 73 at qdbusconnection.cpp:116 frame #13: 0x0000000108b63878 QtDBus`QDBusConnection::sessionBus() + 24 at qdbusconnection.cpp:1180 frame #14: 0x0000000116821ead qtcurve.so`QtCurve::Style::disconnectDBus(this=0x00007fa47899f000) + 61 at qtcurve.cpp:694 frame #15: 0x000000011685aea6 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::runAllCleanups() + 13 at qtcurve_plugin.cpp:86 frame #16: 0x000000011685ae99 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::StylePlugin::~StylePlugin(this=<unavailable>) + 16 at qtcurve_plugin.cpp:167 frame #17: 0x000000011685ae89 qtcurve.so`QtCurve::StylePlugin::~StylePlugin() [inlined] QtCurve::StylePlugin::~StylePlugin(this=<unavailable>) at qtcurve_plugin.cpp:166 frame #18: 0x000000011685ae89 qtcurve.so`QtCurve::StylePlugin::~StylePlugin(this=<unavailable>) + 9 at qtcurve_plugin.cpp:166 frame #19: 0x000000010a4c524d QtCore`QLibraryPrivate::unload(this=0x00007fa469f1dff0, flag=NoUnloadSys) + 93 at qlibrary.cpp:551 frame #20: 0x000000010a4bdd48 QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x00007fa469f1d160) + 88 at qfactoryloader.cpp:88 frame #21: 0x000000010a4be14e QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate() [inlined] QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x00007fa469f1d160) + 14 at qfactoryloader.cpp:85 frame #22: 0x000000010a4be149 QtCore`QFactoryLoaderPrivate::~QFactoryLoaderPrivate(this=0x00007fa469f1d160) + 9 at qfactoryloader.cpp:85 frame #23: 0x000000010a4fc801 QtCore`QObject::~QObject() [inlined] QScopedPointerDeleter<QObjectData>::cleanup(pointer=<unavailable>) + 2033 at qscopedpointer.h:54 frame #24: 0x000000010a4fc7f6 QtCore`QObject::~QObject() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() + 4 at qscopedpointer.h:101 frame #25: 0x000000010a4fc7f2 QtCore`QObject::~QObject() [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() at qscopedpointer.h:99 frame #26: 0x000000010a4fc7f2 QtCore`QObject::~QObject(this=<unavailable>) + 2018 at qobject.cpp:1042 frame #27: 0x000000010a4c028e QtCore`QFactoryLoader::~QFactoryLoader() [inlined] QFactoryLoader::~QFactoryLoader(this=0x00007fa469f1aa00) + 14 at qfactoryloader.cpp:227 frame #28: 0x000000010a4c0289 QtCore`QFactoryLoader::~QFactoryLoader(this=0x00007fa469f1aa00) + 9 at qfactoryloader.cpp:227 frame #29: 0x00000001093e9616 QtWidgets`(anonymous namespace)::Q_QGS_loader::innerFunction()::Cleanup::~Cleanup() [inlined] (anonymous namespace)::Q_QGS_loader::innerFunction()::Cleanup::~Cleanup() + 18 at qstylefactory.cpp:70 frame #30: 0x00000001093e9604 QtWidgets`(anonymous namespace)::Q_QGS_loader::innerFunction(this=<unavailable>)::Cleanup::~Cleanup() + 4 at qstylefactory.cpp:70 frame #31: 0x00007fff8342d7b5 libsystem_c.dylib`__cxa_finalize + 177 frame #32: 0x00007fff8342da60 libsystem_c.dylib`exit + 22 frame #33: 0x00007fff83869604 libdyld.dylib`start + 8 thread #2: tid = 0x12ad637, 0x00007fff85129e22 libsystem_kernel.dylib`__wait4 + 10, queue = 'com.apple.libdispatch-manager' frame #0: 0x00007fff85129e22 libsystem_kernel.dylib`__wait4 + 10 frame #1: 0x00000001070c6fde libKF5Crash.5.dylib`KCrash::startProcess(int, char const**, bool) [inlined] startProcessInternal(argc=<unavailable>, directly=<unavailable>) + 125 at kcrash.cpp:641 frame #2: 0x00000001070c6f61 libKF5Crash.5.dylib`KCrash::startProcess(argc=<unavailable>, argv=<unavailable>, waitAndExit=<unavailable>) + 17 at kcrash.cpp:623 frame #3: 0x00000001070c6de9 libKF5Crash.5.dylib`KCrash::defaultCrashHandler(sig=<unavailable>) + 1049 at kcrash.cpp:527 frame #4: 0x00007fff8b9035aa libsystem_platform.dylib`_sigtramp + 26 frame #5: 0x00007fff8512a663 libsystem_kernel.dylib`kevent64 + 11 frame #6: 0x00007fff8dfab136 libdispatch.dylib`_dispatch_mgr_thread + 52 thread #3: tid = 0x12ad666, 0x00007fff85125a1a libsystem_kernel.dylib`mach_msg_trap + 10 frame #0: 0x00007fff85125a1a libsystem_kernel.dylib`mach_msg_trap + 10 frame #1: 0x00007fff85124d18 libsystem_kernel.dylib`mach_msg + 64 frame #2: 0x00007fff8986df15 CoreFoundation`__CFRunLoopServiceMachPort + 181 frame #3: 0x00007fff8986d539 CoreFoundation`__CFRunLoopRun + 1161 frame #4: 0x00007fff8986ce75 CoreFoundation`CFRunLoopRunSpecific + 309 frame #5: 0x00007fff8605405e AppKit`_NSEventThread + 144 frame #6: 0x00007fff8af32899 libsystem_pthread.dylib`_pthread_body + 138 frame #7: 0x00007fff8af3272a libsystem_pthread.dylib`_pthread_start + 137 frame #8: 0x00007fff8af36fc9 libsystem_pthread.dylib`thread_start + 13 thread #4: tid = 0x12ad6be, 0x00007fff851299aa libsystem_kernel.dylib`__select + 10, name = 'com.apple.CFSocket.private' frame #0: 0x00007fff851299aa libsystem_kernel.dylib`__select + 10 frame #1: 0x00007fff898b9a03 CoreFoundation`__CFSocketManager + 867 frame #2: 0x00007fff8af32899 libsystem_pthread.dylib`_pthread_body + 138 frame #3: 0x00007fff8af3272a libsystem_pthread.dylib`_pthread_start + 137 frame #4: 0x00007fff8af36fc9 libsystem_pthread.dylib`thread_start + 13 thread #5: tid = 0x12b28c2, 0x00007fff851299aa libsystem_kernel.dylib`__select + 10, name = 'QQmlThread' frame #0: 0x00007fff851299aa libsystem_kernel.dylib`__select + 10 frame #1: 0x000000010a526754 QtCore`qt_safe_select(nfds=161, fdread=0x00007fa4757c5798, fdwrite=0x00007fa4757c5a28, fdexcept=0x00007fa4757c5cb8, orig_timeout=<unavailable>) + 564 at qcore_unix.cpp:75 frame #2: 0x000000010a5278d9 QtCore`QEventDispatcherUNIXPrivate::doSelect(this=0x00007fa4757c5600, timeout=<unavailable>, flags=<unavailable>) + 665 at qeventdispatcher_unix.cpp:192 frame #3: 0x000000010a5289fe QtCore`QEventDispatcherUNIX::processEvents(this=0x00007fa4790d8c10, flags=<unavailable>) + 222 at qeventdispatcher_unix.cpp:607 frame #4: 0x000000010a4ccf01 QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [inlined] QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 401 at qeventloop.cpp:128 frame #5: 0x000000010a4ccee4 QtCore`QEventLoop::exec(this=0x000000011b50de38, flags=<unavailable>) + 372 at qeventloop.cpp:204 frame #6: 0x000000010a30e785 QtCore`QThread::exec(this=<unavailable>) + 117 at qthread.cpp:503 frame #7: 0x0000000107946659 QtQml`QQmlThreadPrivate::run(this=0x00007fa4628c5cd0) + 57 at qqmlthread.cpp:141 frame #8: 0x000000010a31219b QtCore`QThreadPrivate::start(arg=0x00007fa4628c5cd0) + 363 at qthread_unix.cpp:340 frame #9: 0x00007fff8af32899 libsystem_pthread.dylib`_pthread_body + 138 frame #10: 0x00007fff8af3272a libsystem_pthread.dylib`_pthread_start + 137 frame #11: 0x00007fff8af36fc9 libsystem_pthread.dylib`thread_start + 13 thread #6: tid = 0x12d05a1, 0x00007fff85129e6a libsystem_kernel.dylib`__workq_kernreturn + 10 frame #0: 0x00007fff85129e6a libsystem_kernel.dylib`__workq_kernreturn + 10 frame #1: 0x00007fff8af33f08 libsystem_pthread.dylib`_pthread_wqthread + 330 frame #2: 0x00007fff8af36fb9 libsystem_pthread.dylib`start_wqthread + 13 (lldb) detach Process 18494 detached Expected Results: No crashing ... -- You are receiving this mail because: You are watching all bug changes.