Details
-
Bug
-
Resolution: Won't Do
-
P2: Important
-
None
-
Qt Creator 10.0.1
-
None
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
- relates to
-
QTCREATORBUG-30319 Unresponsive QT creator when the remote linux is set to a disconnect device
-
- Closed
-
For Gerrit Dashboard: QTCREATORBUG-29186 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
488499,4 | Revert "Utils: Add combine with device env option" | 10.0 | qt-creator/qt-creator | Status: ABANDONED | -2 | 0 |