When using tonic::transport::Server
there is a remote DoS attack that can cause the server to exit cleanly on accepting a tcp/tls stream. This can be triggered via causing the accept call to error out with errors there were not covered correctly causing the accept loop to exit.
More information can be found here
Upgrading to tonic 0.12.3
and above contains the fix.
A custom accept loop is a possible workaround.