feat: slskd reconnect guard in downloaders_reset, mass v2 sync
- downloaders_reset: connection check block before slskd API sections; triggers PUT /api/v0/server reconnect if disconnected, polls 60s, gates Stuck Searches and Dead Transfer Records on SLSKD_CONNECTED - Sync all modified/new/deleted files from v2 refactor across Docker_Essentials, Media, Monitors, Partnership, Rsync, Tools, Transcodes, unRAID_Essentials, common.sh, master confs, and new Manual/README docs
This commit is contained in:
@@ -2,46 +2,66 @@
|
||||
# ==============================================================================================
|
||||
# ============================= Failover State Reset ===========================================
|
||||
# ==============================================================================================
|
||||
# Resets the fallback state file to NORMAL and clears all tier flags.
|
||||
# Use when the fallback state file is stuck in a non-NORMAL state after:
|
||||
# - Failover testing that left state as FALLBACK
|
||||
# - A failed handback that did not complete cleanly
|
||||
# - Manual intervention that left state inconsistent
|
||||
# - fallback.sh was killed mid-cycle and state is unknown
|
||||
#
|
||||
# ── WHAT THIS DOES ────────────────────────────────────────────────────────────────────────────
|
||||
# PURPOSE
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# Resets the fallback state file to NORMAL and clears all tier flags. Use when
|
||||
# the state file is stuck after failover testing, a failed handback, manual
|
||||
# intervention, or fallback.sh being killed mid-cycle.
|
||||
#
|
||||
# Writes a fresh state file with:
|
||||
# state=NORMAL
|
||||
# fallback_start=0
|
||||
# handback_strikes=0
|
||||
# state=NORMAL / fallback_start=0 / handback_strikes=0
|
||||
# tier2_started=false / tier3_started=false / tier4_started=false
|
||||
#
|
||||
# Does NOT start or stop any containers — state file only.
|
||||
# After reset, fallback.sh will resume from NORMAL on its next cycle.
|
||||
# Does NOT start or stop containers — state file only. After reset, fallback.sh
|
||||
# resumes from NORMAL on its next cycle.
|
||||
#
|
||||
# ── ⚠️ ONLY RUN WHEN SAFE ────────────────────────────────────────────────────────────────────
|
||||
# Verify BEFORE resetting:
|
||||
# ✓ Right containers running on the right server
|
||||
# ✓ DDNS pointing at the correct server
|
||||
# ✓ No active failover actually in progress
|
||||
# ✓ Both servers can see each other
|
||||
# WARNING: Only run when you have verified the stack is actually in a normal
|
||||
# state — right containers on the right server, DDNS correct, no active failover
|
||||
# in progress. Resetting state during a real failover causes fallback.sh to stop
|
||||
# covering the remote server until the next detection cycle.
|
||||
#
|
||||
# Resetting state while a real fallback is happening causes fallback.sh to stop
|
||||
# covering the remote server — services go offline until next detection cycle.
|
||||
# ==============================================================================================
|
||||
# OPERATIONAL SAFEGUARDS
|
||||
# ==============================================================================================
|
||||
#
|
||||
# ── SAFEGUARDS ────────────────────────────────────────────────────────────────────────────────
|
||||
# fallback.sh running check — warns if fallback.sh is active when reset is attempted
|
||||
# acquire_lock — prevents concurrent resets
|
||||
# flock on state write — prevents race with fallback.sh mid-cycle read
|
||||
# Confirmation required — interactive: type YES | non-interactive: --force flag
|
||||
# validate_unraid_cmd — notify validated before use
|
||||
# Active Fallback Detection
|
||||
# Checks whether fallback.sh is currently running and warns if so. A reset
|
||||
# during an active cycle causes fallback.sh to lose its state on the next read.
|
||||
#
|
||||
# Single Instance Lock
|
||||
# acquire_lock prevents concurrent resets.
|
||||
#
|
||||
# flock on State Write
|
||||
# The state file write is protected with flock — prevents a race condition
|
||||
# with fallback.sh reading the file mid-cycle.
|
||||
#
|
||||
# Confirmation Required
|
||||
# Interactive mode prompts for YES before writing. Use --force to bypass in
|
||||
# non-interactive contexts (cron, scripts).
|
||||
#
|
||||
# Notification Validated
|
||||
# validate_unraid_cmd confirms the notify script is present before use.
|
||||
#
|
||||
# ==============================================================================================
|
||||
# RUNTIME MODES
|
||||
# ==============================================================================================
|
||||
#
|
||||
# fallback_state_reset.sh
|
||||
# Show current state and prompt for YES before resetting.
|
||||
#
|
||||
# fallback_state_reset.sh --dry-run
|
||||
# Show current state and what the new state file would contain. No write.
|
||||
#
|
||||
# fallback_state_reset.sh --status
|
||||
# Show current state file contents and exit.
|
||||
#
|
||||
# fallback_state_reset.sh --force
|
||||
# Reset without interactive confirmation. Safe for scripted use.
|
||||
#
|
||||
# fallback_state_reset.sh --force --dry-run
|
||||
# Dry run without the confirmation prompt.
|
||||
#
|
||||
# ── USAGE ─────────────────────────────────────────────────────────────────────────────────────
|
||||
# fallback_state_reset.sh — interactive reset (prompts for YES)
|
||||
# fallback_state_reset.sh --dry-run — show current state, show what would be written
|
||||
# fallback_state_reset.sh --status — show current state file contents and exit
|
||||
# fallback_state_reset.sh --force — non-interactive reset (no prompt, use in scripts)
|
||||
# fallback_state_reset.sh --force --dry-run — dry run without prompt
|
||||
# ==============================================================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
Reference in New Issue
Block a user