Http2: Remove errored-out requests from queue
The requests will remove themselves once they get deleted but since the deletion is done through a _queued_ invokeMethod to 'deleteLater' we will call QHttpNetworkConnection::_q_startNextRequest first which may end up starting a reconnect of the TCP socket which we had the error on. In this specific instance it manifested as a race condition where we either don't get a proxyAuthorizationRequired signal at all (it was emitted while we didn't have any valid replies), or we get the signal emitted too late and it gets emitted on whatever the next reply was. Task-number: QTBUG-88417 Change-Id: If3f8ececc5550f1868c90124559cb8e3029646d8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 65bcac95a7a051d4343aaa3c5ff8b39494aa14e4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
96ea154b0f
commit
73534e56ce
@ -1122,6 +1122,7 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket
|
||||
Q_ASSERT(currentReply);
|
||||
emit currentReply->finishedWithError(errorCode, errorString);
|
||||
}
|
||||
h2RequestsToSend.clear();
|
||||
}
|
||||
|
||||
// send the next request
|
||||
|
@ -1,16 +1,4 @@
|
||||
# See qtbase/src/testlib/qtestblacklist.cpp for format
|
||||
[authenticationCacheAfterCancel]
|
||||
windows-7sp1
|
||||
windows-10 msvc-2015
|
||||
|
||||
# QTBUG-88417
|
||||
[authenticationCacheAfterCancel:https+socksauth]
|
||||
ubuntu-20.04
|
||||
|
||||
# QTBUG-88417
|
||||
[authenticationCacheAfterCancel:https+proxyauth]
|
||||
ubuntu-20.04
|
||||
|
||||
[backgroundRequestInterruption]
|
||||
opensuse-leap
|
||||
windows-10 msvc-2015
|
||||
|
Loading…
x
Reference in New Issue
Block a user