The dry-run cleanup trap replaced the lock-release trap and orphaned fallback.lock
This commit is contained in:
@@ -936,8 +936,12 @@ dryrun_state_cleanup() {
|
|||||||
[[ "$DRY_RUN" == true && "$FALLBACK_STATE_FILE" == *".dryrun."* ]] && rm -f "$FALLBACK_STATE_FILE"
|
[[ "$DRY_RUN" == true && "$FALLBACK_STATE_FILE" == *".dryrun."* ]] && rm -f "$FALLBACK_STATE_FILE"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
trap 'dryrun_state_cleanup' EXIT
|
# Must call _release_all_locks too. acquire_lock() registers its own EXIT trap, and bash keeps
|
||||||
trap 'FALLBACK_RUNNING=false; warn "Fallback received shutdown signal — stopping cleanly"; dryrun_state_cleanup; exit 0' \
|
# exactly one per signal — a bare `trap ... EXIT` here silently replaced it and orphaned
|
||||||
|
# fallback.lock, which is the precise failure the _LOCK_FILES registry in common.sh was built to
|
||||||
|
# stop. The signal trap only needs `exit 0`; that fires EXIT, which does both jobs.
|
||||||
|
trap 'dryrun_state_cleanup; _release_all_locks' EXIT
|
||||||
|
trap 'FALLBACK_RUNNING=false; warn "Fallback received shutdown signal — stopping cleanly"; exit 0' \
|
||||||
SIGTERM SIGINT
|
SIGTERM SIGINT
|
||||||
|
|
||||||
while [[ "$FALLBACK_RUNNING" == true ]]; do
|
while [[ "$FALLBACK_RUNNING" == true ]]; do
|
||||||
|
|||||||
Reference in New Issue
Block a user