The server process left running is an artefact of "--gtest_break_on_failure" which exit the test process before sending SIGTERM to the server.
There are two failure modes:
1. Attempting to write to std::cerr after the stream objects are destroyed.
2. Attempting to access boost::system::error_code::message and calling a pure virtual function.
Both look like the process is closing down without first joining any active threads. (I'm still looking for the root cause.)
The server process left running is an artefact of "--gtest_ break_on_ failure" which exit the test process before sending SIGTERM to the server.
There are two failure modes:
1. Attempting to write to std::cerr after the stream objects are destroyed. system: :error_ code::message and calling a pure virtual function.
2. Attempting to access boost::
Both look like the process is closing down without first joining any active threads. (I'm still looking for the root cause.)