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

QNAM HTTP replies contain swapped data after failed request with pipelining

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.9.2, 5.10.0 Alpha
    • 5.6.2, 5.7.1, 5.8.0, 5.9.1
    • Network: HTTP
    • None
    • 9193b6cc8505244a9f1af9706032f8c62142f75a

    Description

      There's another issue with HTTP request pipelining which can result in some QNetworkReply content getting swapped between requests, similar to other issues already reported (e.g. QTBUG-24875).

      This particular one occurs when a request repeatedly fails due to a socket error, so that the channel socket connection eventually gets closed. While the pipelined requests are correctly requeued when the failed request is initially resent (up to the maximum attempts), the requeuing of the pipelined requests is missing when the channel socket is finally closed. This causes a mismatch in the reply being assigned when a subsequent successful request is run on the same channel, as the old pipelined requests are incorrectly reused.

       

      While we don't have a test program to reproduce the issue, we were able to observe it while connecting to AWS and then isolate it through extra logging in QHttpNetworkConnectionChannel. We have a patch to fix the issue as well. (will be uploaded to gerrit)

      Attachments

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

        Activity

          People

            tpochep Timur Pocheptsov
            kromain Romain Pokrzywka
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes