You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, HTTP/2 requests which send data frames longer than (WINDOW_SIZE - RESPONSE_CLASSIFIER_BUFFER_SIZE) can prevent Linkerd from discarding the buffer and releasing window capacity, which causes streams to hang. This is the root cause of issues #1697 and #1605. In #1701, we've changed the default response classifier buffer size from 65kb to 8kb, which prevents this from happening in a majority of cases, but it will still be possible to generate frames which cause streams to hang.
What you expected to happen:
Linkerd should not hang on receipt of any valid request frame, regardless of size, as long as that frame's sender obeys flow control.
Anything else we need to know?:
Although #1701 will fix this in a majority of cases, we should ideally not allow this issue to occur at all. We might want to consider having the response classifier adjust the buffer size based on the current size of the flow control window or discard the request buffer if the request does not complete within a short timeout.
The text was updated successfully, but these errors were encountered:
Issue Type:
What happened:
Currently, HTTP/2 requests which send data frames longer than
(WINDOW_SIZE - RESPONSE_CLASSIFIER_BUFFER_SIZE)
can prevent Linkerd from discarding the buffer and releasing window capacity, which causes streams to hang. This is the root cause of issues #1697 and #1605. In #1701, we've changed the default response classifier buffer size from 65kb to 8kb, which prevents this from happening in a majority of cases, but it will still be possible to generate frames which cause streams to hang.What you expected to happen:
Linkerd should not hang on receipt of any valid request frame, regardless of size, as long as that frame's sender obeys flow control.
Anything else we need to know?:
Although #1701 will fix this in a majority of cases, we should ideally not allow this issue to occur at all. We might want to consider having the response classifier adjust the buffer size based on the current size of the flow control window or discard the request buffer if the request does not complete within a short timeout.
The text was updated successfully, but these errors were encountered: