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

Crash on "git diff" if git executable not found

    XMLWordPrintable

Details

    • 3652ca52bc81be394bab81d93efa19328b7bcc2d

    Description

      If the git executable is not found (e.g. on Linux just rename /usr/bin/git to something else), doing Tools->Git->Local Repository->Diff causes Creator to segfault. Stack trace:

      SOFT ASSERT: "!binary.isEmpty()" in file /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/libs/utils/shellcommand.cpp, line 477
      ASSERT: "uint(i) < uint(size())" in file /sda/home/christian/dev/qt/5.4/build-release/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/tools/qstring.h, line 785
      #0 0x7fbf54dc4822 llvm::sys::PrintStackTrace(_IO_FILE*) (/usr/lib/libLLVM-3.6.so+0xf97822)
      #1 0x7fbf54dc2e19 (/usr/lib/libLLVM-3.6.so+0xf95e19)
      #2 0x7fbf73dd2660 __restore_rt (/usr/lib/libpthread.so.0+0x10660)
      #3 0x7fbf72596528 __GI_raise (/usr/lib/libc.so.6+0x33528)
      #4 0x7fbf7259793a __GI_abort (/usr/lib/libc.so.6+0x3493a)
      #5 0x7fbf740863a5 (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0xa73a5)
      #6 0x7fbf7408196e (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0xa296e)
      #7 0x7fbf747b7a22 QtNamespace::QString::at(int) const /sda/home/christian/dev/qt/5.4/build-release/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/tools/qstring.h:785:0
      #8 0x7fbf74857653 Utils::ShellCommand::displayName() const /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/libs/utils/shellcommand.cpp:162:0
      #9 0x7fbf67305cec Core::ShellCommand::addTask(QtNamespace::QFuture<void>&) /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/coreplugin/shellcommand.cpp:48:0
      #10 0x7fbf74857ad0 Utils::ShellCommand::execute() /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/libs/utils/shellcommand.cpp:229:0
      #11 0x7fbf52fac45b Git::Internal::BaseController::runCommand(QtNamespace::QList<QtNamespace::QStringList> const&, QtNamespace::QTextCodec*) /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/git/gitclient.cpp:166:0
      #12 0x7fbf52facc61 Git::Internal::RepositoryDiffController::reload() /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/git/gitclient.cpp:233:0
      #13 0x7fbf57ab7c8b DiffEditor::DiffEditorController::requestReload() /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/diffeditor/diffeditorcontroller.cpp:177:0
      #14 0x7fbf52faf4e8 Git::Internal::GitClient::requestReload(QtNamespace::QString const&, QtNamespace::QString const&, QtNamespace::QString const&, std::function<DiffEditor::DiffEditorController* (Core::IDocument*)>) const /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/git/gitclient.cpp:753:0
      #15 0x7fbf52fafc74 Git::Internal::GitClient::diffRepository(QtNamespace::QString const&) const /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/git/gitclient.cpp:781:0
      #16 0x7fbf52fe20fb Git::Internal::GitPlugin::diffCurrentProject() /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/plugins/git/gitplugin.cpp:682:0
      #17 0x7fbf52f8dca3 Git::Internal::GitPlugin::qt_static_metacall(QtNamespace::QObject*, QtNamespace::QMetaObject::Call, int, void**) /sda/home/christian/dev/qtcreator/super-master/qtc_Desktop_005447c5-debug/Git.qtc-Desktop-005447c5.c754c020/GeneratedFiles/moc_gitplugin.cpp:248:0
      #18 0x7fbf742947da QtNamespace::QMetaObject::activate(QtNamespace::QObject*, int, int, void**) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2b57da)
      #19 0x7fbf7332e402 QtNamespace::QAction::triggered(bool) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x18d402)
      #20 0x7fbf74845943 QtNamespace::QtPrivate::FunctorCall<QtNamespace::QtPrivate::IndexesList<0>, QtNamespace::QtPrivate::List<bool>, void, void (QtNamespace::QAction::*)(bool)>::call(void (QtNamespace::QAction::*)(bool), QtNamespace::QAction*, void**) /sda/home/christian/dev/qt/5.4/build-release/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:500:0
      #21 0x7fbf7484583e void QtNamespace::QtPrivate::FunctionPointer<void (QtNamespace::QAction::*)(bool)>::call<QtNamespace::QtPrivate::List<bool>, void>(void (QtNamespace::QAction::*)(bool), QtNamespace::QAction*, void**) /sda/home/christian/dev/qt/5.4/build-release/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:520:0
      #22 0x7fbf748456bf QtNamespace::QtPrivate::QSlotObject<void (QtNamespace::QAction::*)(bool), QtNamespace::QtPrivate::List<bool>, void>::impl(int, QtNamespace::QtPrivate::QSlotObjectBase*, QtNamespace::QObject*, void**, bool*) /sda/home/christian/dev/qt/5.4/build-release/qtbase/include/QtCore/../../../../src/qtbase/src/corelib/kernel/qobject_impl.h:144:0
      #23 0x7fbf74294667 QtNamespace::QMetaObject::activate(QtNamespace::QObject*, int, int, void**) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2b5667)
      #24 0x7fbf7332e402 QtNamespace::QAction::triggered(bool) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x18d402)
      #25 0x7fbf73330688 QtNamespace::QAction::activate(QtNamespace::QAction::ActionEvent) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x18f688)
      #26 0x7fbf73330c2f QtNamespace::QAction::event(QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x18fc2f)
      #27 0x7fbf7333759c QtNamespace::QApplicationPrivate::notify_helper(QtNamespace::QObject*, QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x19659c)
      #28 0x7fbf7333c8f0 QtNamespace::QApplication::notify(QtNamespace::QObject*, QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x19b8f0)
      #29 0x7fbf742659b3 QtNamespace::QCoreApplication::notifyInternal(QtNamespace::QObject*, QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2869b3)
      #30 0x7fbf7396853a QtNamespace::QShortcutMap::dispatchEvent(QtNamespace::QKeyEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Gui.so.5+0x12d53a)
      #31 0x7fbf73968681 QtNamespace::QShortcutMap::tryShortcutEvent(QtNamespace::QObject*, QtNamespace::QKeyEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Gui.so.5+0x12d681)
      #32 0x7fbf7333c7e8 QtNamespace::QApplication::notify(QtNamespace::QObject*, QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Widgets.so.5+0x19b7e8)
      #33 0x7fbf742659b3 QtNamespace::QCoreApplication::notifyInternal(QtNamespace::QObject*, QtNamespace::QEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2869b3)
      #34 0x7fbf7393dc81 QtNamespace::QGuiApplicationPrivate::processKeyEvent(QtNamespace::QWindowSystemInterfacePrivate::KeyEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Gui.so.5+0x102c81)
      #35 0x7fbf73942925 QtNamespace::QGuiApplicationPrivate::processWindowSystemEvent(QtNamespace::QWindowSystemInterfacePrivate::WindowSystemEvent*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Gui.so.5+0x107925)
      #36 0x7fbf7392a8a8 QtNamespace::QWindowSystemInterface::sendWindowSystemEvents(QtNamespace::QFlags<QtNamespace::QEventLoop::ProcessEventsFlag>) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Gui.so.5+0xef8a8)
      #37 0x7fbf6b952620 QtNamespace::userEventSourceDispatch(_GSource*, int (*)(void*), void*) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/plugins/platforms/libqxcb.so+0x5f620)
      #38 0x7fbf6f76e9fd g_main_context_dispatch (/usr/lib/libglib-2.0.so.0+0x499fd)
      #39 0x7fbf6f76ece0 (/usr/lib/libglib-2.0.so.0+0x49ce0)
      #40 0x7fbf6f76ed8c g_main_context_iteration (/usr/lib/libglib-2.0.so.0+0x49d8c)
      #41 0x7fbf742b9d7f QtNamespace::QEventDispatcherGlib::processEvents(QtNamespace::QFlags<QtNamespace::QEventLoop::ProcessEventsFlag>) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2dad7f)
      #42 0x7fbf742635ca QtNamespace::QEventLoop::exec(QtNamespace::QFlags<QtNamespace::QEventLoop::ProcessEventsFlag>) (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x2845ca)
      #43 0x7fbf7426ac1d QtNamespace::QCoreApplication::exec() (/sda/home/christian/dev/qt/5.4/build-release/qtbase/lib/libQt5Core.so.5+0x28bc1d)
      #44 0x40bcd9 main /sda/home/christian/dev/qtcreator/super-master/src/qtcreator/src/app/main.cpp:521:0
      #45 0x7fbf72583790 __libc_start_main (/usr/lib/libc.so.6+0x20790)
      #46 0x407989 _start (/sda/home/christian/dev/qtcreator/super-master/qtc_Desktop_005447c5-debug/install-root/bin/qtcreator+0x407989)
      The program has unexpectedly finished.
      

      Attachments

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

        Activity

          People

            hunger Tobias Hunger
            kandeler Christian Kandeler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes