envoyproxy / envoyproxy/envoy

What happens if the available range of stream identifiers is exhausted

Open
#19,219 9 comments 0 reactions 0 assignees View on GitHub
area/http bug help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.