-
-
Notifications
You must be signed in to change notification settings - Fork 607
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
WFE: Correct Error Handling for Nonce Redemption RPCs with Unknown Prefixes #7004
Conversation
29d746f
to
b9b85b8
Compare
I was concerned this would cause a lot of spurious badNonce errors during normal rolling restarts of nonce-service, because one WFE would learn about a new nonce-service instance before the others know about it. However, @jcjones mentioned in #6404 (comment):
So I think we're covered here. Though we should probably find someplace to document this as best practice for deploying Boulder. |
This sounds like a great approach to minimizing badNonce errors after nonce-service restarts. How does the generate service get stopped ahead of the redeem service? |
Fix an issue related to the custom gRPC Picker implementation introduced in #6618. When a nonce contained a prefix not associated with a known backend, the Picker would continuously rebuild, re-resolve DNS, and eventually throw a 500 "Server Error" at RPC timeout. The Picker now promptly returns a 400 "Bad Nonce" error as expected, in response the requesting client should retry their request with a fresh nonce.
Additionally:
"BOULDER_CONFIG_DIR" == "test/config-next"
.Balancer.Build()
in "noncebalancer" forces a rebuild until non-zero backends are available. This matches the balancer/roundrobin implementation."type": "JWSInvalidNonce"
and "nonce_no_backend_found"."type": "JWSMalformedNonce"
instead of"type": "JWSInvalidNonce"
."type": "JWSMalformedNonce"
instead of"type": "JWSInvalidNonce"
.Fixes #6969
Part of #6974