DescriptionDisable QuicFlowController for QUIC versions < QUIC_VERSION_17
Chrome Beta was happily advertising a flow control receive window of
length 0, under the assumption that because the version of QUIC being
spoken didn't support flow control, a zero length window advertisement
would have no adverse effects.
On the server end, the refactoring in internal change: 64733866 resulted
in the QUIC version not being checked when querying
QuicFlowController::IsBlocked. IsBlocked would look at the client's
advertised receive window, and conclude that no data could be sent. This
would never change as the flow control accounting is protected behind
version checks.
Ultimately this means that once a stream was marked as write blocked, it
would never resume writing:
https://codereview.chromium.org/242453002/diff/1/net/quic/quic_session.cc?context=&column_width=80
(line# 286) resulting in a connection timeout.
This CL explicitly disables the QuicFlowController when the negotiated
QUIC version is < QUIC_VERSION_17.
Merge internal change: 65137349
This internal change was LGTM'ed by rch. Wanted to port this change
to disable flow control.
R=rch@chromium.org
BUG=
Patch Set 1 #
Messages
Total messages: 2 (0 generated)
|