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

Crash when switching session

XMLWordPrintable

      While switching from default session to a custom pyside session, Qt Creator crash with the following backtrace:

      
      Qt Creator 4.2.82, based on Qt 5.6.2 (64 bit)
      
      Kernel: darwin 15.5.0
      OS: OS X El Capitan (10.11)
      (lldb) process attach --pid 68476
      
       thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
        * frame #0: 0x00007fff99b7f582 libsystem_kernel.dylib`__wait4 + 10
          frame #1: Qt Creator`::signalHandler(signal=<unavailable>) at crashhandlersetup.cpp:101 [opt]
          frame #2: 0x00007fff8692e52a libsystem_platform.dylib`_sigtramp + 26
          frame #3: 0x000000010b47853a QtCore`operator<(QString const&, QString const&) + 10
          frame #4: libCore.dylib`Core::VcsManagerPrivate::findInCache(QString const&) [inlined] bool qMapLessThanKey<QString>(key1=<unavailable>, key2=0x00007fff557dcc58) at qmap.h:68 [opt]
          frame #5: libCore.dylib`Core::VcsManagerPrivate::findInCache(QString const&) [inlined] QMapNode<QString, Core::VcsManagerPrivate::VcsInfo*>::lowerBound(QString const&) at qmap.h:153 [opt]
          frame #6: libCore.dylib`Core::VcsManagerPrivate::findInCache(QString const&) at qmap.h:283 [opt]
          frame #7: libCore.dylib`Core::VcsManagerPrivate::findInCache(QString const&) [inlined] QMap<QString, Core::VcsManagerPrivate::VcsInfo*>::constFind(QString const&) const at qmap.h:856 [opt]
          frame #8: libCore.dylib`Core::VcsManagerPrivate::findInCache(this=0x00007f818cb5e370, dir=0x00007fff557dcc58) at vcsmanager.cpp:94 [opt]
          frame #9: libCore.dylib`Core::VcsManager::findVersionControlForDirectory(inputDirectory=<unavailable>, topLevelDirectory=0x0000000000000000) at vcsmanager.cpp:261 [opt]
          frame #10: libProjectExplorer.dylib`ProjectExplorer::ProjectNode::vcsTopic(this=<unavailable>) const at projectnodes.cpp:765 [opt]
          frame #11: libProjectExplorer.dylib`ProjectExplorer::Internal::FlatModel::data(this=<unavailable>, index=<unavailable>, role=<unavailable>) const at projectmodels.cpp:156 [opt]
          frame #12: 0x000000010aa8fe35 QtWidgets`QStyledItemDelegate::initStyleOption(QStyleOptionViewItem*, QModelIndex const&) const + 1781
          frame #13: 0x000000010aa90004 QtWidgets`QStyledItemDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const + 68
          frame #14: libProjectExplorer.dylib`(anonymous namespace)::ProjectTreeItemDelegate::paint(this=<unavailable>, painter=<unavailable>, option=<unavailable>, index=<unavailable>) const at projecttreewidget.cpp:76 [opt]
          frame #15: 0x000000010aa43f10 QtWidgets`QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const + 3872
          frame #16: 0x000000010aa41c01 QtWidgets`QTreeView::drawTree(QPainter*, QRegion const&) const + 1233
          frame #17: 0x000000010aa41665 QtWidgets`QTreeView::paintEvent(QPaintEvent*) + 325
          frame #18: 0x000000010a7c98fc QtWidgets`QWidget::event(QEvent*) + 2092
          frame #19: 0x000000010a8c23ed QtWidgets`QFrame::event(QEvent*) + 45
          frame #20: 0x000000010a954fa7 QtWidgets`QAbstractScrollArea::viewportEvent(QEvent*) + 135
          frame #21: 0x000000010a9fd0b5 QtWidgets`QAbstractItemView::viewportEvent(QEvent*) + 1397
          frame #22: 0x000000010aa413f5 QtWidgets`QTreeView::viewportEvent(QEvent*) + 517
          frame #23: 0x000000010a955c44 QtWidgets`___lldb_unnamed_symbol2762$$QtWidgets + 36
          frame #24: 0x000000010b5ae27b QtCore`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 203
          frame #25: 0x000000010a787a41 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 273
          frame #26: 0x000000010a788fb8 QtWidgets`QApplication::notify(QObject*, QEvent*) + 504
          frame #27: 0x000000010b5adfe4 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
          frame #28: 0x000000010a7c3244 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 3316
          frame #29: 0x000000010a795db7 QtWidgets`___lldb_unnamed_symbol100$$QtWidgets + 5511
          frame #30: 0x000000010a7c9b8e QtWidgets`QWidget::event(QEvent*) + 2750
          frame #31: 0x000000010a8da1ea QtWidgets`QMainWindow::event(QEvent*) + 1546
          frame #32: 0x000000010a787a56 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294
          frame #33: 0x000000010a788fb8 QtWidgets`QApplication::notify(QObject*, QEvent*) + 504
          frame #34: 0x000000010b5adfe4 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
          frame #35: 0x000000010b5aed2b QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 875
          frame #36: 0x000000010eb35aee libqcocoa.dylib`___lldb_unnamed_symbol455$$libqcocoa.dylib + 190
          frame #37: 0x000000010eb35015 libqcocoa.dylib`___lldb_unnamed_symbol449$$libqcocoa.dylib + 1589
          frame #38: libProjectExplorer.dylib`ProjectExplorer::SessionManager::loadSession(QString const&) [inlined] ProjectExplorer::SessionManagerPrivate::sessionLoadingProgress(this=<unavailable>) at session.cpp:1115 [opt]
          frame #39: libProjectExplorer.dylib`ProjectExplorer::SessionManager::loadSession(session=0x00007fff557ded10) at session.cpp:1061 [opt]
          frame #40: libProjectExplorer.dylib`ProjectExplorer::ProjectExplorerPluginPrivate::setSession(this=<unavailable>, action=<unavailable>) at projectexplorer.cpp:3373 [opt]
          frame #41: 0x000000010b5e3bce QtCore`QMetaObject::activate(QObject*, int, int, void**) + 2430
          frame #42: 0x000000010a780ec1 QtWidgets`___lldb_unnamed_symbol11$$QtWidgets + 1121
          frame #43: 0x000000010b5e3e1c QtCore`QMetaObject::activate(QObject*, int, int, void**) + 3020
          frame #44: 0x000000010a77e3b7 QtWidgets`QAction::activate(QAction::ActionEvent) + 263
          frame #45: 0x000000010b5e3e1c QtCore`QMetaObject::activate(QObject*, int, int, void**) + 3020
          frame #46: 0x000000010b5dc102 QtCore`QObject::event(QEvent*) + 146
          frame #47: 0x000000010a787a56 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294
          frame #48: 0x000000010a788fb8 QtWidgets`QApplication::notify(QObject*, QEvent*) + 504
          frame #49: 0x000000010b5adfe4 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
          frame #50: 0x000000010b5aed2b QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 875
          frame #51: 0x000000010eb35aee libqcocoa.dylib`___lldb_unnamed_symbol455$$libqcocoa.dylib + 190
          frame #52: 0x000000010eb363b1 libqcocoa.dylib`___lldb_unnamed_symbol467$$libqcocoa.dylib + 33
          frame #53: 0x00007fff89b1f881 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
          frame #54: 0x00007fff89afefbc CoreFoundation`__CFRunLoopDoSources0 + 556
          frame #55: 0x00007fff89afe4df CoreFoundation`__CFRunLoopRun + 927
          frame #56: 0x00007fff89afded8 CoreFoundation`CFRunLoopRunSpecific + 296
          frame #57: 0x00007fff86d83935 HIToolbox`RunCurrentEventLoopInMode + 235
          frame #58: 0x00007fff86d83677 HIToolbox`ReceiveNextEventCommon + 184
          frame #59: 0x00007fff86d835af HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
          frame #60: 0x00007fff91828df6 AppKit`_DPSNextEvent + 1067
          frame #61: 0x00007fff91828226 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
          frame #62: 0x00007fff9181cd80 AppKit`-[NSApplication run] + 682
          frame #63: 0x000000010eb35251 libqcocoa.dylib`___lldb_unnamed_symbol449$$libqcocoa.dylib + 2161
          frame #64: 0x000000010b5aa1a1 QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 417
          frame #65: 0x000000010b5ae655 QtCore`QCoreApplication::exec() + 341
          frame #66: Qt Creator`main(argc=<unavailable>, argv=<unavailable>) at main.cpp:529 [opt]
          frame #67: 0x000000010a422a74 Qt Creator`start + 52
      
      

      Culprit looks like a possibly dangling map in the following code in src/plugins/coreplugin/vcsmanager.cpp:94

      
          VcsInfo *findInCache(const QString &dir)
          {
              QTC_ASSERT(QDir(dir).isAbsolute(), return 0);
              QTC_ASSERT(!dir.endsWith(QLatin1Char('/')), return 0);
              QTC_ASSERT(QDir::fromNativeSeparators(dir) == dir, return 0);
      
              const QMap<QString, VcsInfo *>::const_iterator it = m_cachedMatches.constFind(dir);
              if (it != m_cachedMatches.constEnd())
                  return it.value();
              return 0;
          }
      
      

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

            hunger Tobias Hunger
            alexandru.croitor Alexandru Croitor
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes