Skip to content

envoy cannot handle max_stream_per_connection. #3203

@hehe717

Description

@hehe717

acutally, I want to send 1 streams per 1 connection. (http2).

so I configured as.

.
.
.
 clusters:
  - name: asr_mobile_en-US_Service
    max_requests_per_connection: 1
    connect_timeout: 2s
    cleanup_interval: 2s
    type: STATIC
    lb_policy: ROUND_ROBIN
    http2_protocol_options:
      hpack_table_size: 4096
      max_concurrent_streams: 1
    circuit_breakers:
      thresholds:
      - max_connections: 4096
        max_pending_requests: 6000
        max_requests: 6000
    hosts: [
      { socket_address: { address: 172.17.0.1, port_value: 10001 }},
      { socket_address: { address: 172.17.0.1, port_value: 10002 }},
      { socket_address: { address: 172.17.0.1, port_value: 10003 }},
      { socket_address: { address: 172.17.0.1, port_value: 10004 }},
      { socket_address: { address: 172.17.0.1, port_value: 10005 }},
      { socket_address: { address: 172.17.0.1, port_value: 10006 }},
    ]

as you can see,
I set max_requests__per_connection=1 and max_concurrent_streams=1
there are only 6 machines and I requested to envoy with 7 requests.
and expect 6 requests sends to machine each, and reject 1 request.

and run as
envoy -c /etc/envoy.yaml --concurrency 1

but log is

{ "ts": "2018-04-25T09:10:19.727Z", "upstreamHost": "172.17.0.1:10002" } }
{ "ts": "2018-04-25T09:10:19.725Z", "upstreamHost": "172.17.0.1:10002" } }
{ "ts": "2018-04-25T09:10:19.726Z", ", "upstreamHost": "172.17.0.1:10001" } }
{ "ts": "2018-04-25T09:10:19.726Z",  "upstreamHost": "172.17.0.1:10006" } }
{ "ts": "2018-04-25T09:10:19.726Z", "upstreamHost": "172.17.0.1:10005" } }
{ "ts": "2018-04-25T09:10:19.726Z",  "upstreamHost": "172.17.0.1:10004" } }
{ "ts": "2018-04-25T09:10:19.725Z",  "upstreamHost": "172.17.0.1:10003" } }

as you can see, envoy sent to 172.17.0.1:10002 twice before finishing first request.
as again, I set max_requests__per_connection=1 and max_concurrent_streams=1
what am I missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionQuestions that are neither investigations, bugs, nor enhancements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions