This allows us to return a for-users ProblemDetails from services that
the WFE calls (or services that those services call). Doing so means we
can give better errors to the WFE once we teach the WFE how to pass
along ProblemDetails itself.
This is for #1153 and a few other tickets in the error-messages label.
Fixes#1160
This decreases log size 27% in a simple test, and more importantly makes the
logs human readable and searchable.
Fixes#1031
Also, change corrID to an 8-byte value and break dependency on NewToken().
Fixes#909
In the process, break out AMQP config into its own struct, one per service.
The AMQPConfig struct is included by composition in the config structs that need
it. If any given service lacks an AMQP config of its own, it gets a default
value from the top-level AMQP config struct, for deployability reasons.
Tightens the RPC code to take a specific AMQP config, not an over-broad
cmd.Config.
Shortens construction of specific RPC clients so they instatiate the generic
client connection themselves, simplifying per-service startup code.
Remove unused SetTimeout method on RPC clients.
This fixes a memory leak. On every request timeout, the pending map
would not have the have the request's response channel removed and,
instead, would hold on to it for the lifetime of the process. This
change makes sure the response channel is removed on timeout.
That change would cause "misrouted messages" audit logs to occur when a
response was sent back from a server but arrived past the timeout. That
would get pretty noisy. Since we introduced specific client queues, our
"misrouted messages" audit logs in the clients are always timeouts. So,
we solve the noisy log problem by deleting some code.
Fixes#1045.
instead of submitted key. This minimizes the chances of unexpected JWK fields in
the submitted key altering its interpretation without altering the lookup in the
registrations table.
In the process, fix handling of NoSuchRegistration responses.
Fixes https://github.com/letsencrypt/boulder/issues/865.