-
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
failure_mode_allow=true
is not fully supported for the grpc authz server.
#34705
Comments
Seems likely that these error codes are getting misinterpreted as a denied response, or hitting some alternate error path from the normal one. |
Hello, I tested it manually with logging level tracing and found that responses with error status codes are processed in the |
…er as failure to fix failure_mode_allowed feature (envoyproxy#34951) Fixes envoyproxy#34705 Signed-off-by: konstantin-baidin-y42 <[email protected]> Signed-off-by: Martin Duke <[email protected]>
Since my fix was reverted in #35637, can you please re-open this issue again? @ggreenway |
Also, do I understand right that this time I should create the same PR, just with the runtime guard to be false by default as I did initially? |
You'd need to make it with a config setting to control the behavior, which defaults to the old behavior. Runtime flags are meant to be temporary. |
…er as failure to fix failure_mode_allowed feature (envoyproxy#34951) Fixes envoyproxy#34705 Signed-off-by: konstantin-baidin-y42 <[email protected]> Signed-off-by: asingh-g <[email protected]>
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. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
Title:
failure_mode_allow=true
is not fully supported for the grpc authz server.Description:
There is inconsistency in how the
failure_mode_allow=true
option is applied to external authorization servers depending on the protocol: http and grpc.In case of http authz server, any 5xx statuses lead to accepting the incoming request (fail-open).
In case of grpc authz server, statuses like 14 (Unavailable) lead to rejecting the incoming request. If there is any grpc proxy between envoy and authz server, then this proxy can return 14 (Unavailable) when authz server is unavailable. It leads to the fail-close behaviour even when
failure_mode_allow
is enabled. As a result, we have random rejections while withfailure_mode_allow
we want the opposite - don't reject requests because of random failures.Expected behaviour is to use failue_mode_allow when receiveng grpc statuses like 2 (Unknown), 13 (Internal), 14 (Unavailable).
The following PR #4199 was intended to handle these cases when
failure_mode_allow=true
and authz server is unhealthy, but it was solved for HTTP authz server only.Repro steps:
failure_mode_allow=true
The text was updated successfully, but these errors were encountered: