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
Title: HTTP health checker does not gracefully handle HTTP2 server shutdown (GOAWAY with NO_ERROR)
Description:
The HTTP health checker does not gracefully handle when an HTTP2 server performs the graceful drain sequence. GOAWAY is ignored (no callbacks registered) and then health checks on the old connection fail with REFUSED_STREAM until the connection is forcibly closed by the upstream, at which point the health checker reconnects.
Repro steps:
I've reproduced with this Envoy bootstrap config:
mpuncel
changed the title
HTTP health checker does not gracefully handle server shutdown (GOAWAY with NO_ERROR)
HTTP health checker does not gracefully handle HTTP2 server shutdown (GOAWAY with NO_ERROR)
Oct 13, 2020
Title: HTTP health checker does not gracefully handle HTTP2 server shutdown (GOAWAY with NO_ERROR)
Description:
The HTTP health checker does not gracefully handle when an HTTP2 server performs the graceful drain sequence. GOAWAY is ignored (no callbacks registered) and then health checks on the old connection fail with REFUSED_STREAM until the connection is forcibly closed by the upstream, at which point the health checker reconnects.
Repro steps:
I've reproduced with this Envoy bootstrap config:
And this in
/tmp/envoytesting/lds.yaml
Triggering an lds update by updating something like the stat prefix and
mv
over lds.yaml causes health checks to fail.Logs from running Envoy with
--component-log-level connection:debug,http2:debug,client:debug,hc:debug
:You can see this sequence:
sent goaway code=0
closing socket: 1
, client saysremote close
I'm working on a PR to make the http health checker handle GOAWAY similarly to how the gRPC one does, and will test with my same local repro.
The text was updated successfully, but these errors were encountered: