Hi All,
I hope I can get anwser on this issue.
My current Consul mesh version: 1.20.0
My test setup:
-
Service A (downstream) is calling service B (upstream)
-
requestTimeout for ServiceRouter of the service B is set at high value (10 minutes for this test)
-
localRequestTimeoutMs for ServiceDefaults of the service B is set at high value (10 minutes for this test)
-
To simulate long running request, I put a sleep of more than 5 minutes for service B
Test result:
-
Envoy always terminated the upstream connection at exact 5 minutes.
-
I am aware of that Envoy’s default stream idle timeout is 5 minutes. (stream_idle_timeout attribute)
To mitigate the issue:
-
I updated ServiceRouter of Service B to add : idleTimeout: 600s
-
I did a dump of service A (downstream) envoy and confirmed that the idle_timeout of 600s is reflected under the route_config → route for the Service B (upstream)
-
However, the Envoy still terminated the upstream connection at 5 minutes.
My question is:
-
Adding idleTimeout under ServiceRouter of service B is the correct action to override the default stream_idle_timeout of the Envoy?
-
If that is the case then why it is not taking any effect?
Many thanks!
~K