Skip to content

Override stream_idle_timeout setting #951

Description

@izrik

I have a collection of grpc microservices running in kubernetes, using ESPv2 as a proxy in front of them to route different grpc services to different bakcend components. One of those grpc services has a method that stream responses. The stream is intended to be long-lived, sending updates to a mobile app. However, after about 120 seconds, the stream gets terminated with a RST_STREAM (grpcurl unhelpfully reports an error code of NO_ERROR). I'm pretty sure the culprit is a timeout in ESPv2/Envoy.

So now I'm trying to change the stream_idle_timeout setting in the http connection manager for the listener, but there doesn't seem to be a way to do that.

I tried --stream_idle_timeout, but that results in setting a route idle_timeout (which according to envoy docs is roughly equivalent) in a subset of the routes in the resulting dynamic config. Even though the timeout gets set, the 120-second limit persists.

I tried setting the deadline on the backend rules in my service.json file, which resulted in route idle_timeouts in a different subset of the routes in the dynamic config. It also doesn't affect the 120-second limit.

I tried using --envoy_extra_config_yaml in the ESPv2_ARGS environment variable, but I haven't been able to successfully use that to change the config (validation errors on startup).

What is the best way to manually override the stream_idle_timeout setting. If there isn't an easy way to do that, could a command-line option be added?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions