mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-06 04:04:59 +00:00
Farewell work is queued by farewell message processing. Server shutdown didn't properly wait for pending farewell work to finish before tearing down. As the server work destroyed the server's connection the farewell work could stlil be running and try to send responses down the socket. We make the server more carefully avoid queueuing farewell work if it's in the process of shutting down and wait for farewell work to finish before destroying the server's resources. This fixed all manner of crashes that were seen in testing when a bunch of nodes unmounted, creating farewell work on the server as it itself unmounted and destroyed the server. Signed-off-by: Zach Brown <zab@versity.com>