-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Envoy does not use previously sent RouteConfiguration when initial_fetch_timeout value is changed inside Rds config #32283
Comments
Curious, what is the reason for dynamically changing |
We have multiple envoy proxies as edge proxies connected to the same management server receiving configurations for more than a few thousands of services, and we see a large number of fetch timeouts when we restart the management server since all of the envoy proxies reconnects. We want to adjust The parameter will be updated when we release the change to the management server, and envoy proxies will get the updated value dynamically when it fetches updated |
@alyssawilk I think (as codeowner on router) |
I suspect this is more of an RDS issue so tagging @adisuissa for thoughts |
Yes, it seems that the identifier should be the unique resource name (+ what config-server used to serve it). |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
Hi, I am interested in working on this issue. Please let me know if this is still available. I am new to this repository and would appreciate your sharing resources around the issue and starting pointers. |
Hi @jparklab, I am new to open source, want to work on good first issue types. I would love to work on this issue, if still available. |
Title: Envoy does not use previously sent RouteConfiguration when initial_fetch_timeout value is changed inside Rds config
Description:
Based on Resource warming section on the envoy documentation, envoy is expected to use the previously sent
RouteConfiguration
while warming up aListener
and management does not need to send theRouteConfiguration
if there is no change. However, when a field insideRds
field in theListener
, includinginitial_fetch_timeout
field, is changed in aListener
, Envoy does not use the previously sentRouteConfiguration
and wait for management server for theRouteConfiguration
.This can cause Envoy to time out while waiting for the
RouteConfiguration
, and finishesListener
warming without theRouteConfiguration
. Once aListener
is warmed up withoutRouteCofiguration
, Envoy responds to requests to the route with 404(NR) responses until it is restarted or theRouteConfiguration
is updated and management server sends the updatedRouteConfiguration
to Envoy.This happens because Envoy does not use
existing_provider
in https://github.com/envoyproxy/envoy/blob/v1.26.6/source/common/rds/route_config_provider_manager.cc#L82 if the hash value of rds configuration changes which prevents Envoy from using previously sentRouteConfiguration
Can we update Envoy to use
existing_provider
wheninitial_fetch_timeout
value is changed? Although we do not need to change it often, we sometimes need to change the value, and we want to avoid restarting envoy proxies whenever we need to updateinitial_fetch_timeout
value.Repro steps:
This can be reproduced by running an envoy proxy that uses ADS to fetch configurations from a management server, and change initial_fetch_timeout value in ConfigSource in a listener. I have a simple management server to reproduce the issue, and can provide it if helps.
The text was updated successfully, but these errors were encountered: