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

Process: Detect recursive call to waitForFinished()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Not Evaluated
    • Qt Creator 13.0.1
    • Qt Creator 13.0.0
    • All Other Issues
    • None
    • All
    • 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 
      

      Attachments

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

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes