Open pehala opened 3 years ago
Thoughts from a preliminary inspection:
WithUnavailable
(protobuff rpc mapping for 503 Service Unavailable) is actually present in the Istio Mixer's status package in the vendored dependency tree, it seems not to be available in the latest releases I can see in the upstream repos. This is also the case with a few other cases. I don't know why this changed happened, and my speculation is since it has been removed from there, you can't possibly send such a status code to the latest Mixer with the latest protobuff definition. Instead, and given how many such funcs end up in 500 Internal Server Error, my thinking is Mixer will just interpret it as a deprecated message and use instead a 500 status code.rpc
package definition (404 Not Found) as imported in either the latest mixer sources nor the vendored dependency tree.With*
status function for the returned HTTP status code from 3scale is available, WithStatusUnknown
is used instead, which ends up becoming a 500 Internal Server Error.So from a quick check I think this might need to change in the fail_closed case to return a 403 instead of relaying back the code that 3scale last failed with. The question about why this 503 -> 500 mapping is happening looks less important, and probably not worth getting into.
When Backend caching is enabled and apisonator is down, uncached credentials return always 500 regardless of
BACKEND_CACHE_POLICY_FAIL_CLOSED
. Cached credentials work as expected.