Retry request if server resets pushed stream. |
|
Issue descriptionA server might push a stream, then later reset it. Currently, if the network stack has claimed this pushed stream for a request before it was reset by the server, then the request fails with an error. However, the request is idempotent, because not only does the server never see the request headers, but in fact, the server never actually knows if the client is reading the pushed stream, or if it ignored it and just never bothered to reset it. Therefore it is always safe to retry the request. In order to do this, a new error code ERR_SPDY_PUSHED_STREAM_RESET_BY_SERVER can be returned by SpdySession (which knows if the stream is pushed or client-initiated), and HttpNetworkTransaction can retry the request on this error code. Note that I am introducing error code ERR_SPDY_PUSHED_STREAM_NOT_AVAILABLE at https://crrev.com/c/829993 for the case when the pushed stream is claimed by HttpStreamFactoryImpl::Job, but by the time SpdyHttpStream::Initialize() is called, the stream is reset by the server. The request should be retried on this error code as well.
,
Jan 8 2018
|
|
►
Sign in to add a comment |
|
Comment 1 by bugdroid1@chromium.org
, Jan 4 2018