Details
-
Bug
-
Resolution: Fixed
-
Not Evaluated
-
Qt Creator 13.0.0
-
None
-
-
0aa5b8630 (13.0)
Description
Happened in Android plugin, when waitForFinished() is called from std out callback. So, while waiting for finished there, a new ready read signal comes, and the waitForFinished() is called recursively.
The call stack:
1 QObject::moveToThread qobject.cpp 1683 0x7ffff4c04d5a 2 Utils::Internal::GeneralProcessBlockingImpl::waitForSignal qtcprocess.cpp 972 0x7ffff7abda12 3 Utils::Internal::ProcessPrivate::waitForSignal qtcprocess.cpp 1073 0x7ffff7abe5f6 4 Utils::Process::waitForFinished qtcprocess.cpp 1571 0x7ffff7ac0b48 5 operator() androidsdkmanager.cpp 131 0x7fff7d997cac 6 std::__invoke_impl<void, Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>&, const QString&>(std::__invoke_other, struct {...} &) invoke.h 61 0x7fff7d99cb3d 7 std::__invoke_r<void, Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>&, const QString&>(struct {...} &) invoke.h 111 0x7fff7d99c81a 8 std::_Function_handler<void(const QString&), Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>>::_M_invoke(const std::_Any_data &, const QString &) std_function.h 290 0x7fff7d99c4ea 9 std::function<void (QString const&)>::operator()(QString const&) const std_function.h 590 0x7ffff7a2a83d 10 Utils::Internal::ChannelBuffer::append qtcprocess.cpp 1837 0x7ffff7ac2707 11 Utils::Internal::ProcessPrivate::handleReadyRead qtcprocess.cpp 2039 0x7ffff7ac3a6d 12 Utils::Internal::GeneralProcessBlockingImpl::handleReadyReadSignal qtcprocess.cpp 1052 0x7ffff7abe349 13 Utils::Internal::GeneralProcessBlockingImpl::flushSignals qtcprocess.cpp 1032 0x7ffff7abe218 14 Utils::Internal::GeneralProcessBlockingImpl::flushFor qtcprocess.cpp 748 0x7ffff7acaffc 15 Utils::Internal::ProcessInterfaceHandler::waitForSignal qtcprocess.cpp 887 0x7ffff7abd4f2 16 Utils::Internal::GeneralProcessBlockingImpl::waitForSignal qtcprocess.cpp 973 0x7ffff7abda3b 17 Utils::Internal::ProcessPrivate::waitForSignal qtcprocess.cpp 1073 0x7ffff7abe5f6 18 Utils::Process::waitForFinished qtcprocess.cpp 1571 0x7ffff7ac0b48 19 operator() androidsdkmanager.cpp 131 0x7fff7d997cac 20 std::__invoke_impl<void, Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>&, const QString&>(std::__invoke_other, struct {...} &) invoke.h 61 0x7fff7d99cb3d 21 std::__invoke_r<void, Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>&, const QString&>(struct {...} &) invoke.h 111 0x7fff7d99c81a 22 std::_Function_handler<void(const QString&), Android::Internal::sdkManagerCommand(const Android::AndroidConfig&, const QStringList&, Android::Internal::AndroidSdkManager&, Android::Internal::SdkCmdPromise&, Android::Internal::AndroidSdkManager::OperationOutput&, double, bool, int)::<lambda(const QString&)>>::_M_invoke(const std::_Any_data &, const QString &) std_function.h 290 0x7fff7d99c4ea 23 std::function<void (QString const&)>::operator()(QString const&) const std_function.h 590 0x7ffff7a2a83d 24 Utils::Internal::ChannelBuffer::append qtcprocess.cpp 1837 0x7ffff7ac2707 25 Utils::Internal::ProcessPrivate::handleReadyRead qtcprocess.cpp 2039 0x7ffff7ac3a6d 26 Utils::Internal::GeneralProcessBlockingImpl::handleReadyReadSignal qtcprocess.cpp 1052 0x7ffff7abe349 27 Utils::Internal::GeneralProcessBlockingImpl::flushSignals qtcprocess.cpp 1032 0x7ffff7abe218 28 Utils::Internal::GeneralProcessBlockingImpl::flush qtcprocess.cpp 746 0x7ffff7acaf65 29 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Utils::Internal::GeneralProcessBlockingImpl:: *)()>::call(void (Utils::Internal::GeneralProcessBlockingImpl:: *)(), Utils::Internal::GeneralProcessBlockingImpl *, void * *) qobjectdefs_impl.h 137 0x7ffff7ad694f 30 QtPrivate::FunctionPointer<void (Utils::Internal::GeneralProcessBlockingImpl:: *)()>::call<QtPrivate::List<>, void>(void (Utils::Internal::GeneralProcessBlockingImpl:: *)(), Utils::Internal::GeneralProcessBlockingImpl *, void * *) qobjectdefs_impl.h 174 0x7ffff7ad4fc3 31 QtPrivate::QSlotObject<void (Utils::Internal::GeneralProcessBlockingImpl:: *)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void * *, bool *) qobjectdefs_impl.h 432 0x7ffff7ad3511 32 QtPrivate::QSlotObjectBase::call qobjectdefs_impl.h 374 0x7ffff4b9dc13 33 QMetaObject::invokeMethodImpl qmetaobject.cpp 1609 0x7ffff4b96e4f 34 QMetaObject::invokeMethod<void (Utils::Internal::GeneralProcessBlockingImpl:: *)()> qobjectdefs.h 424 0x7ffff7ace85c 35 Utils::Internal::ProcessInterfaceHandler::appendSignal qtcprocess.cpp 942 0x7ffff7abd7d7 36 Utils::Internal::ProcessInterfaceHandler::handleReadyRead qtcprocess.cpp 925 0x7ffff7abd6de 37 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QByteArray const&, QByteArray const&>, void, void (Utils::Internal::ProcessInterfaceHandler:: *)(QByteArray const&, QByteArray const&)>::call qobjectdefs_impl.h 137 0x7ffff7ad67d3 38 QtPrivate::FunctionPointer<void (Utils::Internal::ProcessInterfaceHandler:: *)(QByteArray const&, QByteArray const&)>::call<QtPrivate::List<QByteArray const&, QByteArray const&>, void> qobjectdefs_impl.h 174 0x7ffff7ad4f31 39 QtPrivate::QSlotObject<void (Utils::Internal::ProcessInterfaceHandler:: *)(QByteArray const&, QByteArray const&), QtPrivate::List<QByteArray const&, QByteArray const&>, void>::impl qobjectdefs_impl.h 432 0x7ffff7ad3325 40 QtPrivate::QSlotObjectBase::call qobjectdefs_impl.h 374 0x7ffff4b9dc13 41 doActivate<false> qobject.cpp 4036 0x7ffff4c16714 42 QMetaObject::activate qobject.cpp 4096 0x7ffff4c0c6b9 43 Utils::ProcessInterface::readyRead moc_processinterface.cpp 235 0x7ffff77708b6 44 Utils::Internal::QProcessImpl::QProcessImpl()::{lambda()#1}::operator()() const qtcprocess.cpp 472 0x7ffff7ac9c4f