Skip to content
Snippets Groups Projects
user avatar
Sami Hiltunen authored
We've recently migrated our logging from the interceptors to the
stats handler. The stats handler runs after an RPC has completed.
gRPC by default doesn't wait for all handlers to return when
stopping. This may lead to some of our log messages being not logged
as the server stops before the log handler has executed after RPC
completion. Other than leading to missing logs on shutdown, this also
leads to flaky tests as not all log entries are guaranteed to be
flushed by the time the test is accessing them after stopping the
server.

This commit configures gRPC servers in Gitaly and Prafect to wait
until all handlers have finished before returning from Stop(). This
ensures our logging handlers have also had the chance to run and
that there are no goroutines running that were spawned by the gRPC
server by the time Stop() returns.

Changelog: fixed
40866e97
Name Last commit Last update