Issue metadata
Sign in to add a comment
|
Infinite retry on 408 response code |
||||||||||||||||||||||||
Issue descriptionOn a QUIC or HTTP/2 connection, if a request receives a 408 response, the request can be retried an infinite number of times. Chrome retries 408 if the connection was reused [1]. I believe this logic was added for HTTP/1.1 connections where there is a concern that the server might close Keep-Alive connections prematurely. Chrome wants to retry in case the request will succeed on a fresh connection. However, IsConnectionReused() is basically always true for QUIC [2] and HTTP/2 [3] connections. This results in infinite retry for QUIC and HTTP/2 when the response code is deterministically 408. I suspect there may be a similar bug here [4] although I'm not too familiar with that code. Contact me privately for a repro. [1] https://cs.chromium.org/chromium/src/net/http/http_network_transaction.cc?rcl=aa1f961e37c8778191049bca02608cc54f389366&l=1249 [2] https://cs.chromium.org/chromium/src/net/quic/chromium/quic_http_stream.cc?rcl=caca06866f37c79df89cab9a634bb7497177236e&l=373 [3] https://cs.chromium.org/chromium/src/net/spdy/spdy_session.cc?rcl=caca06866f37c79df89cab9a634bb7497177236e&l=1297 [4] https://cs.chromium.org/chromium/src/net/http/http_network_transaction.cc?rcl=258758c687d31cc18e1f9f0395a8714df0187202&l=1599
,
Mar 10 2017
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by mmenke@chromium.org
, Mar 10 2017Owner: ----