If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged appropriately.
Title: Empty reply when rate limit grpc service initial_metadata uses certain command operators
Description:
If you attempt to use certain command operators (e.g. %ROUTE_NAME%) as the value of a header in rate_limit_service.grpc_service.initial_metadata requests will fail and receive and empty body response while a stacktrace will appear in Envoy logs.
e.g.
rate_limit_service:
grpc_service:
envoy_grpc:
cluster_name: ratelimit
initial_metadata:
- key: my-lovely-key
value: "%ROUTE_NAME%" # using %ROUTE_NAME% here causes an issue, others like %REQ(:PATH)% work fine
To my mind these operators should work in this context, i.e. in the example %ROUTE_NAME% should resolve to ghi, but I can see how that may not be possible, they should resolve to "-" if it's not possible to make them work at all.
Note: The Envoy_collect tool
gathers a tarball with debug logs, config and the following admin
endpoints: /stats, /clusters and /server_info. Please note if there are
privacy concerns, sanitize the data prior to sharing the tarball/pasting.
Admin and Stats Output:
Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the
admin endpoint documentation.
Note: If there are privacy concerns, sanitize the data prior to
sharing.
If you are reporting any crash or any potential security issue, do not open an issue in this repo. Please report the issue via emailing envoy-security@googlegroups.com where the issue will be triaged appropriately.
Title: Empty reply when rate limit grpc service initial_metadata uses certain command operators
Description:
If you attempt to use certain command operators (e.g. %ROUTE_NAME%) as the value of a header in
rate_limit_service.grpc_service.initial_metadata
requests will fail and receive and empty body response while a stacktrace will appear in Envoy logs.e.g.
To my mind these operators should work in this context, i.e. in the example %ROUTE_NAME% should resolve to
ghi
, but I can see how that may not be possible, they should resolve to "-" if it's not possible to make them work at all.Repro steps:
Working example (steps in commit message):
https://github.com/envoyproxy/ratelimit/compare/main...petedmarsh:rate_limit_service-route_name-empty-reply-example?expand=1
Admin and Stats Output:
Config:
See working example
Logs:
Call Stack: