[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [QtCurve] [Bug 363753] New: crash-at-exit in QtCurve::Style::disconnectDBus
From:       RJVB via KDE Bugzilla <bugzilla_noreply () kde ! org>
Date:       2016-05-31 17:01:19
Message-ID: bug-363753-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]

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: yyc1992@gmail.com
          Reporter: rjvbertin@gmail.com
                CC: hein@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.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic