You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a non-fatal status code is received from a hedged request, then the next hedged request in line is sent immediately, shortcutting its hedging delay.
What did you see instead?
On non-fatal status codes the request is "retried" but still waits for the heding delay to expire. It is not sent immediately.
I can observe this in my application and also in quite isolated junit tests.
Having a look in the source code, I could not spot where this part of the spec should be implemented. HedgingPolicy.nonFatalStatusCodes is only used in RetriableStream.Sublistener#makeHedgingDecision but the information that it was a non fatal status code is not transported to the HedgingPlan. But I did not have a deeper look to understand more.
Steps to reproduce the bug
Setting up an embedded grpc client (with active hedging service config) and server that throws "non-fatal" status codes is possible. I have no sample ready that is not tied to my application though.