Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-30016

Crash on session switch

    XMLWordPrintable

Details

    • Linux/X11
    • f7b1eed0c (master)

    Description

      After session switch (containing Creator project), Creator crashes with the following output:

      terminate called after throwing an instance of 'std::system_error'
        what():  Resource deadlock avoided
      Aborted (core dumped)
      

      Call stack:

      Thread 1 (Thread 0x7f7927033900 (LWP 90598)):
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140158322292992) at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=140158322292992) at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=140158322292992, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
      #3  0x00007f7926a42476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      #4  0x00007f7926a287f3 in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007f7926ea2b9e in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #6  0x00007f7926eae20c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #7  0x00007f7926eae277 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #8  0x00007f7926eae4d8 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #9  0x00007f7926ea583c in std::__throw_system_error(int) () from /lib/x86_64-linux-gnu/libstdc++.so.6
      #10 0x00007f78b4e2f403 in std::__shared_mutex_pthread::lock_shared (this=0x563b7de3db40) at /usr/include/c++/11/shared_mutex:232
      #11 0x00007f78b4e2f482 in std::shared_mutex::lock_shared (this=0x563b7de3db40) at /usr/include/c++/11/shared_mutex:426
      #12 0x00007f78b4e3bd17 in std::shared_lock<std::shared_mutex>::shared_lock (this=0x7ffcb9886c60, __m=...) at /usr/include/c++/11/shared_mutex:727
      #13 0x00007f78b4e3a1f9 in Utils::SynchronizedValue<QmlJS::ModelManagerInterface::SyncedData>::shared_lock::shared_lock (this=0x7ffcb9886c60, value_=..., mutex=...) at /home/jarek/dev/creator-master/src/libs/utils/synchronizedvalue.h:91
      #14 0x00007f78b4e33c63 in Utils::SynchronizedValue<QmlJS::ModelManagerInterface::SyncedData>::readLocked (this=0x563b7de3db40) at /home/jarek/dev/creator-master/src/libs/utils/synchronizedvalue.h:171
      #15 0x00007f78b4e1b15d in QmlJS::ModelManagerInterface::snapshot (this=0x563b7de3db30) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:318
      #16 0x00007f78b4e6ba95 in QmlJS::PluginDumper::onLoadPluginTypes (this=0x563b7de3f980, libraryPath=..., importPath=..., importUri=..., importVersion=...) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsplugindumper.cpp:105
      #17 0x00007f78b4e6b26e in operator() (__closure=0x563b824eadf0) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsplugindumper.cpp:58
      #18 0x00007f78b4e75ffb in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, QmlJS::PluginDumper::loadPluginTypes(const Utils::FilePath&, const Utils::FilePath&, const QString&, const QString&)::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffcb9887198) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:129
      #19 0x00007f78b4e758a5 in QtPrivate::Functor<QmlJS::PluginDumper::loadPluginTypes(const Utils::FilePath&, const Utils::FilePath&, const QString&, const QString&)::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffcb9887198) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:243
      #20 0x00007f78b4e74dda in QtPrivate::QFunctorSlotObject<QmlJS::PluginDumper::loadPluginTypes(const Utils::FilePath&, const Utils::FilePath&, const QString&, const QString&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x563b824eade0, r=0x563b7de3f980, a=0x7ffcb9887198, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:457
      #21 0x00007f792739dc13 in QtPrivate::QSlotObjectBase::call (this=0x563b824eade0, r=0x563b7de3f980, a=0x7ffcb9887198) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:374
      #22 0x00007f7927396e4f in QMetaObject::invokeMethodImpl (object=0x563b7de3f980, slotObj=0x563b824eade0, type=Qt::DirectConnection, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qmetaobject.cpp:1609
      #23 0x00007f78b4e72693 in QMetaObject::invokeMethod<QmlJS::PluginDumper::loadPluginTypes(const Utils::FilePath&, const Utils::FilePath&, const QString&, const QString&)::<lambda()> >(QObject *, struct {...}, Qt::ConnectionType, void *) (context=0x563b7de3f980, function=..., type=Qt::AutoConnection, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs.h:468
      #24 0x00007f78b4e6b3b4 in QmlJS::PluginDumper::loadPluginTypes (this=0x563b7de3f980, libraryPath=..., importPath=..., importUri=..., importVersion=...) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsplugindumper.cpp:58
      #25 0x00007f78b4e23ea6 in QmlJS::ModelManagerInterface::loadPluginTypes (this=0x563b7de3db30, libraryPath=..., importPath=..., importUri=..., importVersion=...) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:1383
      #26 0x00007f78b4e20021 in QmlJS::ModelManagerInterface::findNewQmlLibraryInPath (path=..., snapshot=..., modelManager=0x563b7de3db30, importedFiles=0x7ffcb9887c60, scannedPaths=0x7ffcb9887920, newLibraries=0x7ffcb9887928, ignoreMissing=false, lockedData=0x563b7de3db78) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:911
      #27 0x00007f78b4e208f9 in QmlJS::ModelManagerInterface::findNewLibraryImports (doc=..., snapshot=..., modelManager=0x563b7de3db30, importedFiles=0x7ffcb9887c60, scannedPaths=0x7ffcb9887920, newLibraries=0x7ffcb9887928, lockedData=0x563b7de3db78) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:973
      #28 0x00007f78b4e23888 in operator() (__closure=0x563b84e16c10, sd=...) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:1354
      #29 0x00007f78b4e2da41 in std::__invoke_impl<bool, QmlJS::ModelManagerInterface::updateImportPaths()::<lambda(QmlJS::ModelManagerInterface::SyncedData&)>&, QmlJS::ModelManagerInterface::SyncedData&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
      #30 0x00007f78b4e2c1f5 in std::__invoke_r<bool, QmlJS::ModelManagerInterface::updateImportPaths()::<lambda(QmlJS::ModelManagerInterface::SyncedData&)>&, QmlJS::ModelManagerInterface::SyncedData&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:114
      #31 0x00007f78b4e2a09a in std::_Function_handler<bool(QmlJS::ModelManagerInterface::SyncedData&), QmlJS::ModelManagerInterface::updateImportPaths()::<lambda(QmlJS::ModelManagerInterface::SyncedData&)> >::_M_invoke(const std::_Any_data &, QmlJS::ModelManagerInterface::SyncedData &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
      #32 0x00007f78b4e3a51b in std::function<bool (QmlJS::ModelManagerInterface::SyncedData&)>::operator()(QmlJS::ModelManagerInterface::SyncedData&) const (this=0x7ffcb9887ca0, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
      #33 0x00007f78b4e3423e in Utils::SynchronizedValue<QmlJS::ModelManagerInterface::SyncedData>::update<bool>(std::function<bool (QmlJS::ModelManagerInterface::SyncedData&)> const&) (this=0x563b7de3db40, func=...) at /home/jarek/dev/creator-master/src/libs/utils/synchronizedvalue.h:216
      #34 0x00007f78b4e23d72 in QmlJS::ModelManagerInterface::updateImportPaths (this=0x563b7de3db30) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:1296
      #35 0x00007f78b4e1d3d4 in QmlJS::ModelManagerInterface::updateProjectInfo (this=0x563b7de3db30, pinfo=..., p=0x563b856bb770) at /home/jarek/dev/creator-master/src/libs/qmljs/qmljsmodelmanagerinterface.cpp:589
      #36 0x00007f78ab2efa1d in CMakeProjectManager::Internal::CMakeBuildSystem::updateQmlJSCodeModel (this=0x563b87d61d20, extraHeaderPaths=..., moduleMappings=...) at /home/jarek/dev/creator-master/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp:1861
      #37 0x00007f78ab2e799a in CMakeProjectManager::Internal::CMakeBuildSystem::updateProjectData (this=0x563b87d61d20) at /home/jarek/dev/creator-master/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp:1112
      #38 0x00007f78ab2e5dc5 in CMakeProjectManager::Internal::CMakeBuildSystem::combineScanAndParse (this=0x563b87d61d20, restoredFromBackup=false) at /home/jarek/dev/creator-master/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp:925
      #39 0x00007f78ab2e910c in CMakeProjectManager::Internal::CMakeBuildSystem::handleParsingSucceeded (this=0x563b87d61d20, restoredFromBackup=false) at /home/jarek/dev/creator-master/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp:1232
      #40 0x00007f78ab323775 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (CMakeProjectManager::Internal::CMakeBuildSystem::*)(bool)>::call (f=(void (CMakeProjectManager::Internal::CMakeBuildSystem::*)(CMakeProjectManager::Internal::CMakeBuildSystem * const, bool)) 0x7f78ab2e8d70 <CMakeProjectManager::Internal::CMakeBuildSystem::handleParsingSucceeded(bool)>, o=0x563b87d61d20, arg=0x7ffcb9888d20) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:137
      #41 0x00007f78ab31aadf in QtPrivate::FunctionPointer<void (CMakeProjectManager::Internal::CMakeBuildSystem::*)(bool)>::call<QtPrivate::List<bool>, void> (f=(void (CMakeProjectManager::Internal::CMakeBuildSystem::*)(CMakeProjectManager::Internal::CMakeBuildSystem * const, bool)) 0x7f78ab2e8d70 <CMakeProjectManager::Internal::CMakeBuildSystem::handleParsingSucceeded(bool)>, o=0x563b87d61d20, arg=0x7ffcb9888d20) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
      #42 0x00007f78ab3128bb in QtPrivate::QSlotObject<void (CMakeProjectManager::Internal::CMakeBuildSystem::*)(bool), QtPrivate::List<bool>, void>::impl (which=1, this_=0x563b81d485e0, r=0x563b87d61d20, a=0x7ffcb9888d20, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:432
      #43 0x00007f792739dc13 in QtPrivate::QSlotObjectBase::call (this=0x563b81d485e0, r=0x563b87d61d20, a=0x7ffcb9888d20) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:374
      #44 0x00007f7927416714 in doActivate<false> (sender=0x563b87d61ff0, signal_index=4, argv=0x7ffcb9888d20) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4036
      #45 0x00007f792740c6b9 in QMetaObject::activate (sender=0x563b87d61ff0, m=0x7f78ab66fe80 <CMakeProjectManager::Internal::FileApiReader::staticMetaObject>, local_signal_index=1, argv=0x7ffcb9888d20) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4096
      #46 0x00007f78ab25fb63 in CMakeProjectManager::Internal::FileApiReader::dataAvailable (this=0x563b87d61ff0, _t1=false) at /home/jarek/dev/creator-master-build-65/src/plugins/cmakeprojectmanager/CMakeProjectManager_autogen/EWIEGA46WW/moc_fileapireader.cpp:242
      #47 0x00007f78ab4c1798 in operator() (__closure=0x563b82c97140, value=std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData> (use count 2, weak count 0) = {...}) at /home/jarek/dev/creator-master/src/plugins/cmakeprojectmanager/fileapireader.cpp:292
      #48 0x00007f78ab4c3657 in operator() (__closure=0x563b82c97140, index=0) at /home/jarek/dev/creator-master/src/libs/utils/async.h:78
      #49 0x00007f78ab4c4be8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<int>, void, Utils::onResultReady<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)> >(const QFuture<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData> >&, QObject*, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)>)::<lambda(int)> >::call(struct {...} &, void **) (f=..., arg=0x7ffcb9889030) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:129
      #50 0x00007f78ab4c47b5 in QtPrivate::Functor<Utils::onResultReady<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)> >(const QFuture<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData> >&, QObject*, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)>)::<lambda(int)>, 1>::call<QtPrivate::List<int>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffcb9889030) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:243
      #51 0x00007f78ab4c4588 in QtPrivate::QFunctorSlotObject<Utils::onResultReady<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)> >(const QFuture<std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData> >&, QObject*, CMakeProjectManager::Internal::FileApiReader::endState(const Utils::FilePath&, bool)::<lambda(const std::shared_ptr<CMakeProjectManager::Internal::FileApiQtcData>&)>)::<lambda(int)>, 1, QtPrivate::List<int>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x563b82c97130, r=0x563b87d61ff0, a=0x7ffcb9889030, ret=0x0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:457
      #52 0x00007f792739dc13 in QtPrivate::QSlotObjectBase::call (this=0x563b82c97130, r=0x563b87d61ff0, a=0x7ffcb9889030) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobjectdefs_impl.h:374
      #53 0x00007f7927416714 in doActivate<false> (sender=0x563b80e1b410, signal_index=10, argv=0x7ffcb9889030) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4036
      #54 0x00007f792740c6b9 in QMetaObject::activate (sender=0x563b80e1b410, m=0x7f7927b6b540 <QFutureWatcherBase::staticMetaObject>, local_signal_index=7, argv=0x7ffcb9889030) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qobject.cpp:4096
      #55 0x00007f79276517eb in QFutureWatcherBase::resultReadyAt (this=0x563b80e1b410, _t1=0) at /home/jarek/dev/qt-65-build/qtbase/src/corelib/Core_autogen/include/moc_qfuturewatcher.cpp:492
      #56 0x00007f7927650cf6 in QFutureWatcherBasePrivate::sendCallOutEvent (this=0x563b7ddf38b0, event=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qfuturewatcher.cpp:536
      #57 0x00007f79276504c9 in QFutureWatcherBase::event (this=0x563b80e1b410, event=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/corelib/thread/qfuturewatcher.cpp:392
      #58 0x00007f79291a9d96 in QApplicationPrivate::notify_helper (this=0x563b7d1f9ac0, receiver=0x563b80e1b410, e=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:3290
      #59 0x00007f79291a9b88 in QApplication::notify (this=0x563b7d210650, receiver=0x563b80e1b410, e=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:3241
      #60 0x00007f792737a435 in QCoreApplication::notifyInternal2 (receiver=0x563b80e1b410, event=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1119
      #61 0x00007f792737afd7 in QCoreApplication::sendEvent (receiver=0x563b80e1b410, event=0x7f7568799ba0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1537
      #62 0x00007f792737bf2e in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x563b7d1fbd30) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1899
      #63 0x00007f792737b7fc in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1758
      #64 0x00007f79277cdfd8 in postEventSourceDispatch (s=0x563b7d281b70) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:243
      #65 0x00007f7926d1bd3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #66 0x00007f7926d71258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #67 0x00007f7926d193e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #68 0x00007f79277ce89a in QEventDispatcherGlib::processEvents (this=0x563b7d27a150, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:393
      #69 0x00007f7922d1d22a in QXcbGlibEventDispatcher::processEvents (this=0x563b7d27a150, flags=...) at /home/jarek/dev/qt-65/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:96
      #70 0x00007f792738e941 in QEventLoop::processEvents (this=0x7ffcb9889790, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventloop.cpp:100
      #71 0x00007f792738ecb0 in QEventLoop::exec (this=0x7ffcb9889790, flags=...) at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qeventloop.cpp:182
      #72 0x00007f792737ada0 in QCoreApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/corelib/kernel/qcoreapplication.cpp:1440
      #73 0x00007f79281e6146 in QGuiApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/gui/kernel/qguiapplication.cpp:1925
      #74 0x00007f79291a6d83 in QApplication::exec () at /home/jarek/dev/qt-65/qtbase/src/widgets/kernel/qapplication.cpp:2569
      #75 0x0000563b7cc1f813 in main (argc=1, argv=0x7ffcb9889ee8) at /home/jarek/dev/creator-master/src/app/main.cpp:843
      

      Most probably introduced in: https://codereview.qt-project.org/c/qt-creator/qt-creator/+/516870.
      Update: After bisecting it looks like the above change has introduced this regression.

      Attachments

        For Gerrit Dashboard: QTCREATORBUG-30016
        # Subject Branch Project Status CR V

        Activity

          People

            madwinter Marcus Tillmanns
            jkobus Jarek Kobus
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes