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

Segfault when restoring session

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • None
    • Qt Creator 4.7.0-beta1
    • Gentoo Linux amd64, Qt 5.11 from git, GCC 8.1.

    Description

      I've updated QtCreator from 846d89811a to the latest 4.7 (8e7c1bf1ab) with a clean build and clean install. When I attempt to restore a session (tried two, one with several CMake-based projects, the other with just one CMake project, both sessions are using Ninja), here's what I get:

      Thread 1 "qtcreator" received signal SIGSEGV, Segmentation fault.
      0x00007ffff75635c2 in QString::QString (this=0x7fffffffbfc8, other=...) at /usr/include/qt5/QtCore/qstring.h:952
      952     inline QString::QString(const QString &other) Q_DECL_NOTHROW : d(other.d)
      (gdb) bt
      #0  0x00007ffff75635c2 in QString::QString (this=0x7fffffffbfc8, other=...) at /usr/include/qt5/QtCore/qstring.h:952
      #1  0x00007ffff75f6f68 in Utils::FileName::parentDir (this=0x10) at fileutils.cpp:628
      #2  0x00007fffd7bac528 in ProjectExplorer::FolderNode::addNestedNode(std::unique_ptr<ProjectExplorer::FileNode, std::default_delete<ProjectExplorer::FileNode> >&&, Utils::FileName const&, std::function<std::unique_ptr<ProjectExplorer::FolderNode, std::default_delete<ProjectExplorer::FolderNode> > (Utils::FileName const&)> const&) (this=0x555558916d60, 
          fileNode=<unknown type in /opt/qtc/lib/qtcreator/plugins/libProjectExplorer.so, CU 0x1f44431, DIE 0x1f9f9ca>, overrideBaseDir=..., factory=...) at projectnodes.cpp:555
      #3  0x00007fffd7bac679 in ProjectExplorer::FolderNode::addNestedNodes(std::vector<std::unique_ptr<ProjectExplorer::FileNode, std::default_delete<ProjectExplorer::FileNode> >, std::allocator<std::unique_ptr<ProjectExplorer::FileNode, std::default_delete<ProjectExplorer::FileNode> > > >&&, Utils::FileName const&, std::function<std::unique_ptr<ProjectExplorer::FolderNode, std::default_delete<ProjectExplorer::FolderNode> > (Utils::FileName const&)> const&) (this=0x555558916d60, 
          files=<unknown type in /opt/qtc/lib/qtcreator/plugins/libProjectExplorer.so, CU 0x1f44431, DIE 0x1f9f926>, overrideBaseDir=..., factory=...) at projectnodes.cpp:565
      #4  0x00007fffd205dcca in CMakeProjectManager::Internal::addCMakeVFolder(ProjectExplorer::FolderNode *, const Utils::FileName &, int, const QString &, <unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba37f9>) (base=0x555558916d60, basePath=..., priority=1000, displayName=..., 
          files=<unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba37f9>) at servermodereader.cpp:273
      #5  0x00007fffd205e017 in CMakeProjectManager::Internal::addCMakeInputs(ProjectExplorer::FolderNode *, const Utils::FileName &, const Utils::FileName &, <unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3534>, <unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3545>, <unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3556>) (root=0x555558b18250, sourceDir=..., buildDir=..., 
          sourceInputs=<unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3534>, 
          buildInputs=<unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3545>, 
          rootInputs=<unknown type in /opt/qtc/lib/qtcreator/plugins/libCMakeProjectManager.so, CU 0xaddaa6, DIE 0xba3556>) at servermodereader.cpp:304
      #6  0x00007fffd205e6a4 in CMakeProjectManager::Internal::ServerModeReader::generateProjectTree (this=0x55555804d210, root=0x555558b18250, allFiles=...) at servermodereader.cpp:351
      #7  0x00007fffd1fa447e in CMakeProjectManager::Internal::BuildDirManager::generateProjectTree (this=0x55555800bf38, root=0x555558b18250, allFiles=...) at builddirmanager.cpp:292
      #8  0x00007fffd1fca822 in CMakeProjectManager::CMakeProject::generateProjectTree (this=0x55555800be80, allFiles=...) at cmakeproject.cpp:358
      #9  0x00007fffd1fc9d46 in CMakeProjectManager::CMakeProject::updateProjectData (this=0x55555800be80, bc=0x55555803c2a0) at cmakeproject.cpp:272
      #10 0x00007fffd1fcb9a2 in CMakeProjectManager::CMakeProject::combineScanAndParse (this=0x55555800be80, bc=0x55555803c2a0) at cmakeproject.cpp:549
      #11 0x00007fffd1fcb87f in CMakeProjectManager::CMakeProject::handleParsingSuccess (this=0x55555800be80, bc=0x55555803c2a0) at cmakeproject.cpp:524
      #12 0x00007fffd1fc8570 in CMakeProjectManager::CMakeProject::<lambda()>::operator()(void) const (__closure=0x55555726f480) at cmakeproject.cpp:101
      #13 0x00007fffd1fd0f35 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, CMakeProjectManager::CMakeProject::CMakeProject(const Utils::FileName&)::<lambda()> >::call(CMakeProjectManager::CMakeProject::<lambda()> &, void **) (f=..., arg=0x7fffffffc730) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:128
      #14 0x00007fffd1fd04e5 in QtPrivate::Functor<CMakeProjectManager::CMakeProject::CMakeProject(const Utils::FileName&)::<lambda()>, 0>::call<QtPrivate::List<>, void>(CMakeProjectManager::CMakeProject::<lambda()> &, void *, void **) (f=..., arg=0x7fffffffc730) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:238
      #15 0x00007fffd1fcf7c6 in QtPrivate::QFunctorSlotObject<CMakeProjectManager::CMakeProject::CMakeProject(const Utils::FileName&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55555726f470, r=0x55555800be80, a=0x7fffffffc730, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:421
      #16 0x00007ffff5b8b1af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffc730, r=0x55555800be80, this=0x55555726f470)
          at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
      #17 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
      #18 0x00007fffd208b08f in CMakeProjectManager::Internal::BuildDirManager::dataAvailable (this=0x55555800bf38) at .moc/debug-shared/moc_builddirmanager.cpp:176
      #19 0x00007fffd1fa2f97 in CMakeProjectManager::Internal::BuildDirManager::emitDataAvailable (this=0x55555800bf38) at builddirmanager.cpp:96
      #20 0x00007fffd1fb0513 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CMakeProjectManager::Internal::BuildDirManager::*)()>::call(void (CMakeProjectManager::Internal::BuildDirManager::*)(), CMakeProjectManager::Internal::BuildDirManager*, void**) (
          f=(void (CMakeProjectManager::Internal::BuildDirManager::*)(CMakeProjectManager::Internal::BuildDirManager * const)) 0x7fffd1fa2f6c <CMakeProjectManager::Internal::BuildDirManager::emitDataAvailable()>, o=0x55555800bf38, arg=0x7fffffffc910) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:134
      #21 0x00007fffd1faef51 in QtPrivate::FunctionPointer<void (CMakeProjectManager::Internal::BuildDirManager::*)()>::call<QtPrivate::List<>, void>(void (CMakeProjectManager::Internal::BuildDirManager::*)(), CMakeProjectManager::Internal::BuildDirManager*, void**) (
          f=(void (CMakeProjectManager::Internal::BuildDirManager::*)(CMakeProjectManager::Internal::BuildDirManager * const)) 0x7fffd1fa2f6c <CMakeProjectManager::Internal::BuildDirManager::emitDataAvailable()>, o=0x55555800bf38, arg=0x7fffffffc910) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:167
      #22 0x00007fffd1facfb6 in QtPrivate::QSlotObject<void (CMakeProjectManager::Internal::BuildDirManager::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55555804ea60, r=0x55555800bf38, a=0x7fffffffc910, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:396
      #23 0x00007ffff5b8b1af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffc910, r=0x55555800bf38, this=0x55555804ea60)
          at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
      #24 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
      #25 0x00007fffd208b563 in CMakeProjectManager::Internal::BuildDirReader::dataAvailable (this=0x55555804d210) at .moc/debug-shared/moc_builddirreader.cpp:185
      #26 0x00007fffd205f5d1 in CMakeProjectManager::Internal::ServerModeReader::handleReply (this=0x55555804d210, data=..., inReplyTo=...) at servermodereader.cpp:425
      #27 0x00007fffd2077989 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QMap<QString, QVariant> const&, QString const&>, void, void (CMakeProjectManager::Internal::ServerModeReader::*)(QMap<QString, QVariant> const&, QString const&)>::call (f=
          (void (CMakeProjectManager::Internal::ServerModeReader::*)(CMakeProjectManager::Internal::ServerModeReader * const, const QMap<QString, QVariant> &, const QString &)) 0x7fffd205f02a <CMakeProjectManager::Internal::ServerModeReader::handleReply(QMap<QString, QVariant> const&, QString const&)>, o=0x55555804d210, arg=0x7fffffffcbb0)
          at /usr/include/qt5/QtCore/qobjectdefs_impl.h:134
      #28 0x00007fffd2076b8c in QtPrivate::FunctionPointer<void (CMakeProjectManager::Internal::ServerModeReader::*)(QMap<QString, QVariant> const&, QString const&)>::call<QtPrivate::List<QMap<QString, QVariant> const&, QString const&>, void> (f=
          (void (CMakeProjectManager::Internal::ServerModeReader::*)(CMakeProjectManager::Internal::ServerModeReader * const, const QMap<QString, QVariant> &, const QString &)) 0x7fffd205f02a <CMakeProjectManager::Internal::ServerModeReader::handleReply(QMap<QString, QVariant> const&, QString const&)>, o=0x55555804d210, arg=0x7fffffffcbb0)
          at /usr/include/qt5/QtCore/qobjectdefs_impl.h:167
      #29 0x00007fffd2074f9e in QtPrivate::QSlotObject<void (CMakeProjectManager::Internal::ServerModeReader::*)(QMap<QString, QVariant> const&, QString const&), QtPrivate::List<QMap<QString, QVariant> const&, QString const&>, void>::impl (which=1, this_=0x555558050be0, r=0x55555804d210, a=0x7fffffffcbb0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:396
      #30 0x00007ffff5b8b1af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffcbb0, r=0x55555804d210, this=0x555558050be0)
          at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
      #31 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
      #32 0x00007fffd208ef60 in CMakeProjectManager::Internal::ServerMode::cmakeReply (this=0x555558050ae0, _t1=..., _t2=..., _t3=...) at .moc/debug-shared/moc_servermode.cpp:254
      #33 0x00007fffd2055dda in CMakeProjectManager::Internal::ServerMode::parseJson (this=0x555558050ae0, data=...) at servermode.cpp:355
      #34 0x00007fffd205542f in CMakeProjectManager::Internal::ServerMode::parseBuffer (this=0x555558050ae0, buffer=...) at servermode.cpp:310
      #35 0x00007fffd205511c in CMakeProjectManager::Internal::ServerMode::handleRawCMakeServerData (this=0x555558050ae0) at servermode.cpp:278
      ---Type <return> to continue, or q <return> to quit---
      #36 0x00007fffd205b514 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CMakeProjectManager::Internal::ServerMode::*)()>::call(void (CMakeProjectManager::Internal::ServerMode::*)(), CMakeProjectManager::Internal::ServerMode*, void**) (
          f=(void (CMakeProjectManager::Internal::ServerMode::*)(CMakeProjectManager::Internal::ServerMode * const)) 0x7fffd2054f46 <CMakeProjectManager::Internal::ServerMode::handleRawCMakeServerData()>, o=0x555558050ae0, arg=0x7fffffffcf10) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:134
      #37 0x00007fffd205b0d9 in QtPrivate::FunctionPointer<void (CMakeProjectManager::Internal::ServerMode::*)()>::call<QtPrivate::List<>, void>(void (CMakeProjectManager::Internal::ServerMode::*)(), CMakeProjectManager::Internal::ServerMode*, void**) (
          f=(void (CMakeProjectManager::Internal::ServerMode::*)(CMakeProjectManager::Internal::ServerMode * const)) 0x7fffd2054f46 <CMakeProjectManager::Internal::ServerMode::handleRawCMakeServerData()>, o=0x555558050ae0, arg=0x7fffffffcf10) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:167
      #38 0x00007fffd205aa34 in QtPrivate::QSlotObject<void (CMakeProjectManager::Internal::ServerMode::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55555822c7b0, r=0x555558050ae0, a=0x7fffffffcf10, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:396
      #39 0x00007ffff5b8b1af in QtPrivate::QSlotObjectBase::call (a=0x7fffffffcf10, r=0x555558050ae0, this=0x55555822c7b0)
          at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qobjectdefs_impl.h:376
      #40 QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3754
      #41 0x00007ffff5b8b06b in QMetaObject::activate(QObject*, int, int, void**) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3771
      #42 0x00007ffff5b8b677 in QMetaObject::activate (sender=sender@entry=0x55555822b7f8, m=m@entry=0x7ffff5fd9f20 <QIODevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, 
          argv=argv@entry=0x0) at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qobject.cpp:3633
      #43 0x00007ffff5ac47a0 in QIODevice::readyRead (this=this@entry=0x55555822b7f8) at .moc/moc_qiodevice.cpp:185
      #44 0x00007ffff60cc023 in QAbstractSocketPrivate::emitReadyRead (this=this@entry=0x55555822b8e0, channel=channel@entry=0)
          at /var/tmp/portage/dev-qt/qtnetwork-5.11.9999/work/qtnetwork-5.11.9999/src/network/socket/qabstractsocket.cpp:1307
      #45 0x00007ffff60cc0b0 in QAbstractSocketPrivate::canReadNotification (this=0x55555822b8e0)
          at /var/tmp/portage/dev-qt/qtnetwork-5.11.9999/work/qtnetwork-5.11.9999/src/network/socket/qabstractsocket.cpp:734
      #46 0x00007ffff60de3d9 in QReadNotifier::event (this=<optimized out>, e=<optimized out>)
          at /var/tmp/portage/dev-qt/qtnetwork-5.11.9999/work/qtnetwork-5.11.9999/src/network/socket/qnativesocketengine.cpp:1274
      #47 0x00007ffff6db3f51 in QApplicationPrivate::notify_helper (this=this@entry=0x555555794a70, receiver=receiver@entry=0x55555815df30, e=e@entry=0x7fffffffd2a0)
          at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3725
      #48 0x00007ffff6dbb4a0 in QApplication::notify(QObject*, QEvent*) () at /var/tmp/portage/dev-qt/qtwidgets-5.11.9999/work/qtwidgets-5.11.9999/src/widgets/kernel/qapplication.cpp:3484
      #49 0x00007ffff5b63911 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
          at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1048
      #50 0x00007ffff5bb2d7b in QCoreApplication::sendEvent (event=0x7fffffffd2a0, receiver=<optimized out>)
          at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.h:234
      #51 socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:106
      #52 0x00007ffff1d85b5d in g_main_dispatch (context=0x7fffe00016f0) at /var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3234
      #53 g_main_context_dispatch (context=context@entry=0x7fffe00016f0) at /var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3899
      #54 0x00007ffff1d85de8 in g_main_context_iterate (context=context@entry=0x7fffe00016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
          at /var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3972
      #55 0x00007ffff1d85e7c in g_main_context_iteration (context=0x7fffe00016f0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:4033
      #56 0x00007ffff5bb2423 in QEventDispatcherGlib::processEvents (this=0x5555557fac60, flags=...)
          at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qeventdispatcher_glib.cpp:423
      #57 0x00007fffeb1517e1 in QPAEventDispatcherGlib::processEvents (this=0x5555557fac60, flags=...)
          at /var/tmp/portage/dev-qt/qtgui-5.11.9999/work/qtgui-5.11.9999/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:69
      #58 0x00007ffff5b62903 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/global/qflags.h:71
      #59 0x00007ffff5b6a66f in QCoreApplication::exec() () at /var/tmp/portage/dev-qt/qtcore-5.11.9999/work/qtcore-5.11.9999/src/corelib/kernel/qcoreapplication.cpp:1336
      #60 0x0000555555565530 in main (argc=1, argv=0x7fffffffd8b8) at main.cpp:598
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            hunger Tobias Hunger
            jkt Jan Kundrát
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes