boulder/cmd
Jacob Hoffman-Andrews c556a1a20d
Reduce spurious errors in integration test (#3436)
Boulder is fairly noisy about gRPC connection errors. This is a mixed
blessing: Our gRPC configuration will try to reconnect until it hits
an RPC deadline, and most likely eventually succeed. In that case,
we don't consider those to really be errors. However, in cases where
a connection is repeatedly failing, we'd like to see errors in the
logs about connection failure, rather than "deadline exceeded." So
we want to keep logging of gRPC errors.

However, right now we get a lot of these errors logged during
integration tests. They make the output hard to read, and may disguise
more serious errors. So we'd like to avoid causing such errors in
normal integration test operation.

This change reorders the startup of Boulder components by their gRPC
dependencies, so everything's backend is likely to be up and running
before it starts. It also reverses that order for clean shutdowns,
and waits for each process to exit before signalling the next one.

With these changes, I still got connection errors. Taking listenbuddy
out of the gRPC path fixed them. I believe the issue is that
listenbuddy is not a truly transparent proxy. In particular, it
accepts an inbound TCP connection before opening an outbound TCP
connection. If opening that outbound connection results in "connection
refused," it closes the inbound connection. That means gRPC sees a
"connection closed" (or "connection reset"?) rather than "connection
refused". I'm guessing it handles those cases differently, explaining
the different error results.

We've been using listenbuddy to trigger disconnects while Boulder is
running, to ensure that gRPC's reconnect code works. I think we can
probably rely on gRPC's reconnect to work. The initial problem that
led us to start testing this was a configuration problem; now that
we have the configuration we want, we should be fine and don't need
to keep testing reconnects on every integration test run.
2018-02-12 18:17:50 -08:00
..
admin-revoker Restore gRPC metrics (#3265) 2017-12-07 15:44:55 -08:00
boulder-ca Fix issuerCert in test configs. (#3310) 2018-01-09 07:56:39 -05:00
boulder-publisher Restore gRPC metrics (#3265) 2017-12-07 15:44:55 -08:00
boulder-ra Use ctpolicy package in RA (#3422) 2018-02-08 13:33:42 -08:00
boulder-sa Export max DB connections in boulder-sa and ocsp-responder (#3388) 2018-01-24 09:11:01 -05:00
boulder-va Restore gRPC metrics (#3265) 2017-12-07 15:44:55 -08:00
boulder-wfe Reduce spurious errors in integration test (#3436) 2018-02-12 18:17:50 -08:00
boulder-wfe2 Reduce spurious errors in integration test (#3436) 2018-02-12 18:17:50 -08:00
cert-checker Remove `.mil` check from cert-checker. (#3426) 2018-02-06 11:02:45 -08:00
expiration-mailer Restore gRPC metrics (#3265) 2017-12-07 15:44:55 -08:00
expired-authz-purger Speed up expired authz purger (#3267) 2017-12-11 12:05:43 -05:00
gen-key Add a PKCS#11 key generation tool (#3163) 2017-10-30 16:09:28 -07:00
id-exporter Remove global state from metrics gathering (#3167) 2017-10-13 11:58:01 -07:00
notify-mailer Use TLS in mailer integration tests (#3213) 2017-11-06 14:57:14 -08:00
ocsp-responder Return 500s from ocsp-responder. (#3423) 2018-02-06 11:37:44 -08:00
ocsp-updater Add inital CTPolicy impl (#3414) 2018-02-06 10:52:20 -08:00
orphan-finder Restore gRPC metrics (#3265) 2017-12-07 15:44:55 -08:00
single-ocsp Improve single-ocsp command (#2181) 2016-09-15 15:28:54 -07:00
testdata Simplify gRPC TLS configs. (#2470) 2017-01-06 14:19:18 -08:00
weak-key-flatten Basic RSA known weak key checking (#2765) 2017-05-25 09:33:58 -07:00
weak-key-search Remove global state from metrics gathering (#3167) 2017-10-13 11:58:01 -07:00
clock_generic.go Switch to new vendor style (#1747) 2016-04-18 12:51:36 -07:00
clock_integration.go Switch to new vendor style (#1747) 2016-04-18 12:51:36 -07:00
config.go Implement regID whitelist for allowed challenge types. (#3352) 2018-01-10 13:44:53 -05:00
config_test.go Simplify gRPC TLS configs. (#2470) 2017-01-06 14:19:18 -08:00
shell.go Restore expvar handler. (#3209) 2017-11-02 07:05:54 -07:00
shell_test.go Remove references to test-ca.pem. (#3322) 2018-01-05 12:07:12 -08:00