mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-07 20:45:18 +00:00
Consistently stop fencing as server stops
As the server comes up it needs to fence any previous servers before it assumes exclusive access to the device. If fencing fails it can leave fence requests behind. The error path for these very early failures didn't shut down fencing so we'd have lingering fence requests span the life cycle of server startup and shutdown. The next time the server starts up in this mount it can try to create the fence request again, get an error because a lingering one already exists, and immediately shut down. The result is that fencing errors that hit that initial attempt during server startup can become persistent fencing errors for the lifetime of that mount, preventing it from every successfully starting the server. Moving the fence stop call to hit all exiting error paths consistently clean up fence requests and avoid this problem. The next server instance will get a chance to process the fence request again. It might well hit the same error, but at least it gets a chance. Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
@@ -3942,11 +3942,11 @@ shutdown:
|
||||
/* wait for extra queues by requests, won't find waiters */
|
||||
flush_work(&server->commit_work);
|
||||
|
||||
scoutfs_fence_stop(sb);
|
||||
scoutfs_lock_server_destroy(sb);
|
||||
scoutfs_omap_server_shutdown(sb);
|
||||
|
||||
out:
|
||||
scoutfs_fence_stop(sb);
|
||||
scoutfs_net_free_conn(sb, conn);
|
||||
|
||||
/* let quorum know that we've shutdown */
|
||||
|
||||
Reference in New Issue
Block a user