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

Regression: Creator freezes when having remote devices correctly setup but VPN is off

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • P2: Important
    • None
    • Qt Creator 10.0.1
    • All Other Issues
    • None
    • Linux/X11

    Description

      To reproduce:
      1. Setup a remote device that needs VPN connection (10.9.78.65)
      2. Turn off the VPN
      3. Start Creator, open settings, switch to Devices page - the main thread freezes for about 10 seconds.

      The regression was introduces in: https://codereview.qt-project.org/c/qt-creator/qt-creator/+/457117.

      Creator 9 does not suffer from this issue.

      Call stack:

      1   __futex_abstimed_wait_common64                                                                                                                                                                    futex-internal.c                          57   0x7ffff4491197 
      2   __futex_abstimed_wait_common                                                                                                                                                                      futex-internal.c                          87   0x7ffff4491197 
      3   __GI___futex_abstimed_wait_cancelable64                                                                                                                                                           futex-internal.c                          139  0x7ffff4491197 
      4   __pthread_cond_wait_common                                                                                                                                                                        pthread_cond_wait.c                       503  0x7ffff4493f1b 
      5   ___pthread_cond_timedwait64                                                                                                                                                                       pthread_cond_wait.c                       652  0x7ffff4493f1b 
      6   QWaitConditionPrivate::wait_relative                                                                                                                                                              qwaitcondition_unix.cpp                   101  0x7ffff502c3c9 
      7   QWaitConditionPrivate::wait                                                                                                                                                                       qwaitcondition_unix.cpp                   109  0x7ffff502c42e 
      8   QWaitCondition::wait                                                                                                                                                                              qwaitcondition_unix.cpp                   184  0x7ffff502c0d6 
      9   Utils::Internal::ProcessInterfaceHandler::doWaitForSignal                                                                                                                                         process.cpp                               885  0x7ffff7a2b8a7 
      10  Utils::Internal::ProcessInterfaceHandler::waitForSignal                                                                                                                                           process.cpp                               856  0x7ffff7a2b76e 
      11  Utils::Internal::GeneralProcessBlockingImpl::waitForSignal                                                                                                                                        process.cpp                               945  0x7ffff7a2bcdc 
      12  Utils::Internal::ProcessPrivate::waitForSignal                                                                                                                                                    process.cpp                               1046 0x7ffff7a2c783 
      13  std::__invoke_impl<bool, bool (Utils::Internal::ProcessPrivate:: *)(Utils::ProcessSignalType, int), Utils::Internal::ProcessPrivate *&, Utils::ProcessSignalType, int&>                           invoke.h                                  74   0x7ffff7a42c9d 
      14  std::__invoke<bool (Utils::Internal::ProcessPrivate:: *)(Utils::ProcessSignalType, int), Utils::Internal::ProcessPrivate *&, Utils::ProcessSignalType, int&>                                      invoke.h                                  96   0x7ffff7a418d4 
      15  std::invoke<bool (Utils::Internal::ProcessPrivate:: *)(Utils::ProcessSignalType, int), Utils::Internal::ProcessPrivate *&, Utils::ProcessSignalType, int&>                                        functional                                97   0x7ffff7a3ee17 
      16  Utils::Internal::MeasureAndRun::measureAndRun<bool (Utils::Internal::ProcessPrivate:: *)(Utils::ProcessSignalType, int), Utils::Internal::ProcessPrivate *&, Utils::ProcessSignalType, int&>      process.cpp                               66   0x7ffff7a3c973 
      17  Utils::Process::waitForStarted                                                                                                                                                                    process.cpp                               1515 0x7ffff7a2e885 
      18  Utils::Process::runBlocking                                                                                                                                                                       process.cpp                               1863 0x7ffff7a309d7 
      19  RemoteLinux::LinuxDevicePrivate::getEnvironment                                                                                                                                                   linuxdevice.cpp                           343  0x7fffac2e9788 
      20  RemoteLinux::LinuxDeviceFileAccess::deviceEnvironment                                                                                                                                             linuxdevice.cpp                           358  0x7fffac2e9a58 
      21  ProjectExplorer::IDevice::systemEnvironment                                                                                                                                                       idevice.cpp                               259  0x7fffa552a366 
      22  ProjectExplorer::IDevice::searchExecutableInPath                                                                                                                                                  idevice.cpp                               222  0x7fffa5529de9 
      23  ProjectExplorer::IDevice::qmlRunCommand                                                                                                                                                           idevice.cpp                               612  0x7fffa552dc64 
      24  RemoteLinux::Internal::GenericLinuxDeviceConfigurationWidget::initGui                                                                                                                             genericlinuxdeviceconfigurationwidget.cpp 325  0x7fffac2dc2d4 
      25  RemoteLinux::Internal::GenericLinuxDeviceConfigurationWidget::GenericLinuxDeviceConfigurationWidget                                                                                               genericlinuxdeviceconfigurationwidget.cpp 155  0x7fffac2da070 
      26  RemoteLinux::LinuxDevice::createWidget                                                                                                                                                            linuxdevice.cpp                           995  0x7fffac2ee151 
      27  ProjectExplorer::Internal::DeviceSettingsWidget::currentDeviceChanged                                                                                                                             devicesettingswidget.cpp                  388  0x7fffa5517b3f 
      28  ProjectExplorer::Internal::DeviceSettingsWidget::initGui                                                                                                                                          devicesettingswidget.cpp                  190  0x7fffa551568b 
      29  ProjectExplorer::Internal::DeviceSettingsWidget::DeviceSettingsWidget                                                                                                                             devicesettingswidget.cpp                  81   0x7fffa5513fb5 
      30  operator()                                                                                                                                                                                        devicesettingspage.cpp                    22   0x7fffa5513724 
      31  std::__invoke_impl<ProjectExplorer::Internal::DeviceSettingsWidget *, ProjectExplorer::Internal::DeviceSettingsPage::DeviceSettingsPage()::<lambda()>&>(std::__invoke_other, struct {...} &)      invoke.h                                  61   0x7fffa5513c7e 
      32  std::__invoke_r<Core::IOptionsPageWidget *, ProjectExplorer::Internal::DeviceSettingsPage::DeviceSettingsPage()::<lambda()>&>(struct {...} &)                                                     invoke.h                                  114  0x7fffa5513b65 
      33  std::_Function_handler<Core::IOptionsPageWidget *(), ProjectExplorer::Internal::DeviceSettingsPage::DeviceSettingsPage()::<lambda()>>::_M_invoke(const std::_Any_data &)                          std_function.h                            290  0x7fffa5513a62 
      34  std::function<Core::IOptionsPageWidget * ()>::operator()() const                                                                                                                                  std_function.h                            590  0x7fffa600c60a 
      35  Core::IOptionsPage::widget                                                                                                                                                                        ioptionspage.cpp                          138  0x7fffa600aa3c 
      36  Core::Internal::SmartScrollArea::showEvent                                                                                                                                                        settingsdialog.cpp                        346  0x7fffa603c995 
      37  QWidget::event                                                                                                                                                                                    qwidget.cpp                               9072 0x7ffff6c32ad5 
      38  QFrame::event                                                                                                                                                                                     qframe.cpp                                515  0x7ffff6d36de9 
      39  QAbstractScrollArea::event                                                                                                                                                                        qabstractscrollarea.cpp                   917  0x7ffff6d3147e 
      40  QScrollArea::event                                                                                                                                                                                qscrollarea.cpp                           291  0x7ffff6ec8149 
      41  Core::Internal::SmartScrollArea::event                                                                                                                                                            settingsdialog.cpp                        391  0x7fffa603cccd 
      42  QApplicationPrivate::notify_helper                                                                                                                                                                qapplication.cpp                          3315 0x7ffff6ba1f74 
      43  QApplication::notify                                                                                                                                                                              qapplication.cpp                          3262 0x7ffff6ba1d3e 
      44  QCoreApplication::notifyInternal2                                                                                                                                                                 qcoreapplication.cpp                      1063 0x7ffff4d74bdd 
      45  QCoreApplication::sendEvent                                                                                                                                                                       qcoreapplication.cpp                      1479 0x7ffff4d7577b 
      46  QWidgetPrivate::show_helper                                                                                                                                                                       qwidget.cpp                               7988 0x7ffff6c2fb4d 
      47  QWidgetPrivate::show_recursive                                                                                                                                                                    qwidget.cpp                               7867 0x7ffff6c2f562 
      48  QWidgetPrivate::showChildren                                                                                                                                                                      qwidget.cpp                               8356 0x7ffff6c30f25 
      49  QWidgetPrivate::show_helper                                                                                                                                                                       qwidget.cpp                               7943 0x7ffff6c2f998 
      50  QWidgetPrivate::setVisible                                                                                                                                                                        qwidget.cpp                               8286 0x7ffff6c30aaf 
      51  QWidget::setVisible                                                                                                                                                                               qwidget.cpp                               8218 0x7ffff6c306c0 
      52  QWidget::show                                                                                                                                                                                     qwidget.cpp                               7844 0x7ffff6c2f45f 
      53  QWidgetPrivate::showChildren                                                                                                                                                                      qwidget.cpp                               8358 0x7ffff6c30f33 
      54  QWidgetPrivate::show_helper                                                                                                                                                                       qwidget.cpp                               7943 0x7ffff6c2f998 
      55  QWidgetPrivate::show_recursive                                                                                                                                                                    qwidget.cpp                               7867 0x7ffff6c2f562 
      56  QWidgetPrivate::showChildren                                                                                                                                                                      qwidget.cpp                               8356 0x7ffff6c30f25 
      57  QWidgetPrivate::show_helper                                                                                                                                                                       qwidget.cpp                               7943 0x7ffff6c2f998 
      58  QWidgetPrivate::setVisible                                                                                                                                                                        qwidget.cpp                               8286 0x7ffff6c30aaf 
      59  QWidget::setVisible                                                                                                                                                                               qwidget.cpp                               8218 0x7ffff6c306c0 
      60  QDialog::setVisible                                                                                                                                                                               qdialog.cpp                               771  0x7ffff6f76307 
      61  QWidget::show                                                                                                                                                                                     qwidget.cpp                               7844 0x7ffff6c2f45f 
      62  QDialog::exec                                                                                                                                                                                     qdialog.cpp                               577  0x7ffff6f7589d 
      63  Core::Internal::SettingsDialog::execDialog                                                                                                                                                        settingsdialog.cpp                        757  0x7fffa6039d60 
      64  Core::Internal::executeSettingsDialog                                                                                                                                                             settingsdialog.cpp                        792  0x7fffa603a039 
      65  Core::ICore::showOptionsDialog                                                                                                                                                                    icore.cpp                                 283  0x7fffa61d524f 
      66  operator()                                                                                                                                                                                        mainwindow.cpp                            782  0x7fffa62bec62 
      67  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Core::Internal::MainWindow::registerDefaultActions()::<lambda()>>::call(struct {...} &, void * *)                       qobjectdefs_impl.h                        127  0x7fffa62cca7d 
      68  QtPrivate::Functor<Core::Internal::MainWindow::registerDefaultActions()::<lambda()>, 0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void * *)                                          qobjectdefs_impl.h                        241  0x7fffa62cc06e 
      69  QtPrivate::QFunctorSlotObject<Core::Internal::MainWindow::registerDefaultActions()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *) qobjectdefs_impl.h                        408  0x7fffa62cb668 
      70  QtPrivate::QSlotObjectBase::call                                                                                                                                                                  qobjectdefs_impl.h                        363  0x7ffff4d96027 
      71  doActivate<false>                                                                                                                                                                                 qobject.cpp                               3979 0x7ffff4e11066 
      72  QMetaObject::activate                                                                                                                                                                             qobject.cpp                               4039 0x7ffff4e073cb 
      73  QAction::triggered                                                                                                                                                                                moc_qaction.cpp                           576  0x7ffff60f39ff 
      74  QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, void (QAction:: *)(bool)>::call                                                                                    qobjectdefs_impl.h                        135  0x7ffff7a5f976 
      75  QtPrivate::FunctionPointer<void (QAction:: *)(bool)>::call<QtPrivate::List<bool>, void>                                                                                                           qobjectdefs_impl.h                        172  0x7ffff7a5f81f 
      76  QtPrivate::QSlotObject<void (QAction:: *)(bool), QtPrivate::List<bool>, void>::impl                                                                                                               qobjectdefs_impl.h                        383  0x7ffff7a5f73d 
      77  QtPrivate::QSlotObjectBase::call                                                                                                                                                                  qobjectdefs_impl.h                        363  0x7ffff4d96027 
      78  doActivate<false>                                                                                                                                                                                 qobject.cpp                               3979 0x7ffff4e11066 
      79  QMetaObject::activate                                                                                                                                                                             qobject.cpp                               4039 0x7ffff4e073cb 
      80  QAction::triggered                                                                                                                                                                                moc_qaction.cpp                           576  0x7ffff60f39ff 
      81  QAction::activate                                                                                                                                                                                 qaction.cpp                               1104 0x7ffff60f24ea 
      82  QMenuPrivate::activateCausedStack                                                                                                                                                                 qmenu.cpp                                 1396 0x7ffff6e9c193 
      83  QMenuPrivate::activateAction                                                                                                                                                                      qmenu.cpp                                 1478 0x7ffff6e9c66f 
      84  QMenu::mouseReleaseEvent                                                                                                                                                                          qmenu.cpp                                 2904 0x7ffff6ea1480 
      85  QWidget::event                                                                                                                                                                                    qwidget.cpp                               8848 0x7ffff6c31eda 
      86  QMenu::event                                                                                                                                                                                      qmenu.cpp                                 3029 0x7ffff6ea1ec0 
      87  QApplicationPrivate::notify_helper                                                                                                                                                                qapplication.cpp                          3315 0x7ffff6ba1f74 
      88  QApplication::notify                                                                                                                                                                              qapplication.cpp                          2803 0x7ffff6b9fbcb 
      89  QCoreApplication::notifyInternal2                                                                                                                                                                 qcoreapplication.cpp                      1063 0x7ffff4d74bdd 
      90  QCoreApplication::sendSpontaneousEvent                                                                                                                                                            qcoreapplication.cpp                      1493 0x7ffff4d7580b 
      91  QApplicationPrivate::sendMouseEvent                                                                                                                                                               qapplication.cpp                          2387 0x7ffff6b9e676 
      92  QWidgetWindow::handleMouseEvent                                                                                                                                                                   qwidgetwindow.cpp                         519  0x7ffff6c654f4 
      93  QWidgetWindow::event                                                                                                                                                                              qwidgetwindow.cpp                         241  0x7ffff6c644b3 
      94  QApplicationPrivate::notify_helper                                                                                                                                                                qapplication.cpp                          3315 0x7ffff6ba1f74 
      95  QApplication::notify                                                                                                                                                                              qapplication.cpp                          3266 0x7ffff6ba1d66 
      96  QCoreApplication::notifyInternal2                                                                                                                                                                 qcoreapplication.cpp                      1063 0x7ffff4d74bdd 
      97  QCoreApplication::sendSpontaneousEvent                                                                                                                                                            qcoreapplication.cpp                      1493 0x7ffff4d7580b 
      98  QGuiApplicationPrivate::processMouseEvent                                                                                                                                                         qguiapplication.cpp                       2249 0x7ffff5bdd0e3 
      99  QGuiApplicationPrivate::processWindowSystemEvent                                                                                                                                                  qguiapplication.cpp                       1998 0x7ffff5bdc3fa 
      100 QWindowSystemInterface::sendWindowSystemEvents                                                                                                                                                    qwindowsysteminterface.cpp                1108 0x7ffff5c8c3f0 
      101 xcbSourceDispatch                                                                                                                                                                                 qxcbeventdispatcher.cpp                   57   0x7ffff072137a 
      102 g_main_context_dispatch                                                                                                                                                                                                                          0x7ffff471bd3b 
      103 ??                                                                                                                                                                                                                                               0x7ffff4771258 
      104 g_main_context_iteration                                                                                                                                                                                                                         0x7ffff47193e3 
      105 QEventDispatcherGlib::processEvents                                                                                                                                                               qeventdispatcher_glib.cpp                 393  0x7ffff51b0dd6 
      106 QXcbGlibEventDispatcher::processEvents                                                                                                                                                            qxcbeventdispatcher.cpp                   96   0x7ffff07215d8 
      107 QEventLoop::processEvents                                                                                                                                                                         qeventloop.cpp                            100  0x7ffff4d88ecf 
      108 QEventLoop::exec                                                                                                                                                                                  qeventloop.cpp                            182  0x7ffff4d8923e 
      109 QCoreApplication::exec                                                                                                                                                                            qcoreapplication.cpp                      1384 0x7ffff4d75548 
      110 QGuiApplication::exec                                                                                                                                                                             qguiapplication.cpp                       1859 0x7ffff5bdbd04 
      111 QApplication::exec                                                                                                                                                                                qapplication.cpp                          2595 0x7ffff6b9ef7d 
      112 main                                                                                                                                                                                              main.cpp                                  815  0x5555555651af 
      

      In addition, when GDB server executable field is set to: ssh://berlin@10.9.78.65/., the freeze takes longer (30 seconds) and the following asserts appear:

      SOFT ASSERT [08:42:54.750]: "state() == QProcess::Running" in /home/jarek/dev/creator-11/src/libs/utils/process.cpp:1564
      qtc.utils.deviceshell: Timeout while trying to check for "cat"
      SOFT ASSERT [08:42:54.750]: "m_shell" in /home/jarek/dev/creator-11/src/plugins/remotelinux/linuxdevice.cpp:850
      SOFT ASSERT [08:42:54.750]: "m_shell" in /home/jarek/dev/creator-11/src/plugins/remotelinux/linuxdevice.cpp:850
      

      In this case the thread it trying to write into the not running process:

      1  Utils::Process::writeRaw                                                                                                                                                 process.cpp               1565 0x7ffff7a2ed28 
      2  Utils::DeviceShell::checkCommand                                                                                                                                         deviceshell.cpp           244  0x7ffff780cefe 
      3  Utils::DeviceShell::installShellScript                                                                                                                                   deviceshell.cpp           271  0x7ffff780d4a5 
      4  operator()                                                                                                                                                               deviceshell.cpp           200  0x7ffff780c91b 
      5  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, bool, Utils::DeviceShell::start()::<lambda()>>::call(struct {...} &, void * *)                       qobjectdefs_impl.h        127  0x7ffff780f903 
      6  QtPrivate::Functor<Utils::DeviceShell::start()::<lambda()>, 0>::call<QtPrivate::List<>, bool>(struct {...} &, void *, void * *)                                          qobjectdefs_impl.h        241  0x7ffff780f6c5 
      7  QtPrivate::QFunctorSlotObject<Utils::DeviceShell::start()::<lambda()>, 0, QtPrivate::List<>, bool>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *) qobjectdefs_impl.h        408  0x7ffff780f598 
      8  QtPrivate::QSlotObjectBase::call                                                                                                                                         qobjectdefs_impl.h        363  0x7ffff4d96027 
      9  QMetaCallEvent::placeMetaCall                                                                                                                                            qobject.cpp               608  0x7ffff4dfe1e5 
      10 QObject::event                                                                                                                                                           qobject.cpp               1378 0x7ffff4dff45d 
      11 QApplicationPrivate::notify_helper                                                                                                                                       qapplication.cpp          3315 0x7ffff6ba1f74 
      12 QApplication::notify                                                                                                                                                     qapplication.cpp          3266 0x7ffff6ba1d66 
      13 QCoreApplication::notifyInternal2                                                                                                                                        qcoreapplication.cpp      1063 0x7ffff4d74bdd 
      14 QCoreApplication::sendEvent                                                                                                                                              qcoreapplication.cpp      1479 0x7ffff4d7577b 
      15 QCoreApplicationPrivate::sendPostedEvents                                                                                                                                qcoreapplication.cpp      1841 0x7ffff4d766d2 
      16 QCoreApplication::sendPostedEvents                                                                                                                                       qcoreapplication.cpp      1700 0x7ffff4d75fa0 
      17 postEventSourceDispatch                                                                                                                                                  qeventdispatcher_glib.cpp 243  0x7ffff51b0514 
      18 g_main_context_dispatch                                                                                                                                                                                 0x7ffff471bd3b 
      19 ??                                                                                                                                                                                                      0x7ffff4771258 
      20 g_main_context_iteration                                                                                                                                                                                0x7ffff47193e3 
      21 QEventDispatcherGlib::processEvents                                                                                                                                      qeventdispatcher_glib.cpp 393  0x7ffff51b0dd6 
      22 QEventLoop::processEvents                                                                                                                                                qeventloop.cpp            100  0x7ffff4d88ecf 
      23 QEventLoop::exec                                                                                                                                                         qeventloop.cpp            182  0x7ffff4d8923e 
      24 QThread::exec                                                                                                                                                            qthread.cpp               578  0x7ffff4f2ccef 
      25 QThread::run                                                                                                                                                             qthread.cpp               699  0x7ffff4f2d230 
      26 operator()                                                                                                                                                               qthread_unix.cpp          321  0x7ffff5015e69 
      27 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void *)::<lambda()>>(struct {...} &&)                                                                qthread_unix.cpp          257  0x7ffff50170af 
      28 QThreadPrivate::start                                                                                                                                                    qthread_unix.cpp          280  0x7ffff5015f35 
      29 start_thread                                                                                                                                                             pthread_create.c          442  0x7ffff4494b43 
      30 clone3                                                                                                                                                                   clone3.S                  81   0x7ffff4526a00 
      

      Attachments

        Issue Links

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

          Activity

            People

              Unassigned Unassigned
              jkobus Jarek Kobus
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes