Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.7, 6.8
-
None
Description
After encountering QTBUG-132277 and disabling HTTP/2 on load balancer, a redirect from a HTTP/1.1 connection fails to correctly continue request processing. This is evident by the attached Wireshark screen grabs demonstrating that after remote end closes the connection, and Qt retries multiple times, ultimately failing.
- Application dispatches a network request to QNetworkAccessManager with ManualRedirectPolicy.
- Qt issues a HTTP 1.1 PUT on a large file
- Backend responds with a HTTP 302 redirect to a different location, while Qt is still uploading the large file
- Backend closes connection after issuing 302
- Qt automatically retries PUT to the original URL
- 2-5 is repeated four times
- Qt reports failure to the application with QNetworkReply::RemoteHostClosedConnection
If the remote end doesn't close the connection after 302, everything works (but incorrectly uploads to both endpoints).
This works correctly with HTTP/2, in this case we see a reset stream instead of connection closed when inspecting protocol exchange.