This commit is contained in:
@@ -190,6 +190,15 @@ recover_stale_state() {
|
||||
[[ "$state_job" =~ ^[0-9a-f-]{36}$ ]] || die 'update state job id is invalid'
|
||||
[[ "$state_old" == "$PREFIX/releases/"* && -d "$state_old" && ! -L "$state_old" ]] || die 'update state target is invalid'
|
||||
current_target=$(readlink -f -- "$CURRENT_LINK" 2>/dev/null || true)
|
||||
if [[ "$state_phase" == download && "$current_target" == "$state_old" ]]; then
|
||||
# Downloading never changes the active release. If the runner was killed
|
||||
# after the CLI staged its payload but before it removed the recovery
|
||||
# marker, keep the request available for an idempotent retry. Treating
|
||||
# every stale download marker as a failed apply would discard a usable
|
||||
# staged payload and leave the browser showing a misleading failure.
|
||||
clear_update_state || true
|
||||
return 0
|
||||
fi
|
||||
if [[ "$state_phase" == finalizing && "$current_target" != "$state_old" ]]; then
|
||||
recovery_node="$CURRENT_LINK/runtime/bin/node"
|
||||
[[ -x "$recovery_node" ]] || recovery_node=$(command -v node || true)
|
||||
|
||||
Reference in New Issue
Block a user