Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-118209

Several issues when aborting network request

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.6, 6.7.1, 6.8.0 FF
    • 6.5.3
    • Network: HTTP
    • None
    • be6644c1f (dev), 518ce19c7 (6.7), a64d1021d (6.6)

    Description

      This is actualised version of the QTBUG-36127, which is pretty old and seems forgotten.

      See sample code:

      #include <QtCore/QCoreApplication>
      #include <QtCore/QEventLoop>
      #include <QtCore/QTimer>
      #include <QtNetwork/QNetworkAccessManager>
      #include <QtNetwork/QNetworkReply>
      
      int main(int argc, char** argv)
      {
          int finishCount = 0;
      
          QCoreApplication app(argc, argv);
      
          QNetworkAccessManager network;
          QNetworkReply* reply = network.post(QNetworkRequest(QUrl("http://invalid-hostname")), QByteArray("foo bar"));
      
          QObject::connect(reply, &QNetworkReply::finished, reply, [&] { ++finishCount; });
      
          reply->abort();
          QEventLoop eventLoop;
          QTimer::singleShot(200, &eventLoop, &QEventLoop::quit);
          eventLoop.exec();
      
          reply->deleteLater();
      
          qWarning() << "Finish count" << finishCount;
      
          return 0;
      };
      

      When aborting network request, e.g. by timeout, we can encounter several issues:
      1. Internal Qt warning: "QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once."
      2. finished() signal and corresponding slot might be called twice.

      With the code sample above both problems are stably reproduced for me at least on macOS.

      Attachments

        Issue Links

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

          Activity

            People

              manordheim MÃ¥rten Nordheim
              studiosus Vladimir Belyavsky
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes