envoyproxy/envoy

What happens if the available range of stream identifiers is exhausted

Open

#19 219 ouverte le 8 déc. 2021

Voir sur GitHub
 (9 commentaires) (0 réactions) (0 assignés)C++ (5 373 forks)batch import
area/httpbughelp wanted

Métriques du dépôt

Stars
 (27 997 stars)
Métriques de merge PR
 (Merge moyen 8j) (378 PRs mergées en 30 j)

Description

Title: what is the behavior when https stream identifiers are exhausted.

Description: In a setup with an upstream where h2 is set, but no max_stream_duration or max_requests_per_connection is set towards an upstream.

Is it possible to run into a problem where HTTP2 connections where the stream id is exhausted (more than 2^31). What is the behavior of envoy as a client in the scenario?

Also the same question applies to downstream, does envoy implement the GOAWAY to handle these situations?

A related RFC chapter mentions this:

Stream identifiers cannot be reused. Long-lived connections can result in an endpoint exhausting the available range of stream identifiers. A client that is unable to establish a new stream identifier can establish a new connection for new streams. A server that is unable to establish a new stream identifier can send a GOAWAY frame so that the client is forced to open a new connection for new streams.

We are using: 1.16 and up

[optional Relevant Links:] https://datatracker.ietf.org/doc/html/rfc7540#section-5.1.1

Thank you for your answer in advance.

Guide contributeur