]> git.kaiwu.me - haproxy.git/commit
MEDIUM: h2: silently ignore frames higher than last_id after GOAWAY
authorWilly Tarreau <w@1wt.eu>
Mon, 30 Oct 2017 17:38:00 +0000 (18:38 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Oct 2017 17:16:19 +0000 (18:16 +0100)
commitc0da1964ba086b0794043652f9429f7eb470f581
tree142071d7ae1abc3729f13d8d8592428f0924c137
parentf182a9a8b422cbcf430c8890da180f10da421d2f
MEDIUM: h2: silently ignore frames higher than last_id after GOAWAY

For a graceful shutdown, the specs requries to discard frames with a
stream ID higher than the advertised last_id. (RFC7540#6.8). Well,
finally for now the code is disabled (see last page of #6.8). Some
frames need to be processed anyway to maintain the compression state
and the flow control window state, but we don't have any trivial way
to do this and ignore them at the same time. For the headers it's
the worst case where we can't parse headers frames without coming
from the streams, and we don't want to create such streams as we'd
have to abort them, and aborting would cause errors to flow back.

Possibly that a longterm solution might involve using some dummy
streams and dummy buffers for this and calling the parsers directly.
src/mux_h2.c