From 8d72fbf0e29d78a43625ae1877b3aa99acdbb0ff Mon Sep 17 00:00:00 2001 From: Gmer4Lfe Date: Fri, 22 May 2026 21:47:03 -0400 Subject: [PATCH] =?UTF-8?q?fix=20Failover=E2=86=92Fallback=20naming=20and?= =?UTF-8?q?=20missing/stale=20script=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Failover/ was renamed to Fallback/ — all script paths and README links updated across README.md, Orchestrators README, and User Script Plug-in README. array_start.sh → array_started.sh in Orchestrators scripts table (wrong name). fallback_state_reset.sh: script is referenced in User Script Plug-in README but does not exist in Fallback/. Entry updated to document it as not yet built and provides the manual workaround (direct state file write). Note: /mnt/user/appdata-Failover/ share path references left unchanged — that is the actual unRAID share name on the server, not the script folder. --- Orchestrators/README-Orchestrators.md | 4 +-- README-User_Script_Plug-in.md | 37 ++++++++++++--------------- README.md | 4 +-- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/Orchestrators/README-Orchestrators.md b/Orchestrators/README-Orchestrators.md index 0865898..2f1e3ec 100644 --- a/Orchestrators/README-Orchestrators.md +++ b/Orchestrators/README-Orchestrators.md @@ -166,7 +166,7 @@ without `--log`. | Script | What It Orchestrates | Schedule | |--------|---------------------|----------| -| `array_start.sh` | All array startup scripts in order | At Startup of Array | +| `array_started.sh` | All array startup scripts in order | At Startup of Array | | `watchdog_orchestrator.sh` | resource → docker → system → stability watchdogs | Every minute | | `transcode_management.sh` | Cleanup then manager — order critical | Every 3 minutes | | `arrs_failed_stalled_recovery.sh` | Failed import + stalled download recovery | Every 6 hours | @@ -222,7 +222,7 @@ ARRAY_START_SCRIPTS=( "Watchdogs/docker_watchdog.sh" # container health BEFORE failover — # containers must be healthy for failover # to make reliable decisions - "Failover/failover.sh" # failover LAST — needs everything else stable + "Fallback/fallback.sh" # fallback LAST — needs everything else stable ) ``` diff --git a/README-User_Script_Plug-in.md b/README-User_Script_Plug-in.md index 6f200fc..1d065cb 100644 --- a/README-User_Script_Plug-in.md +++ b/README-User_Script_Plug-in.md @@ -675,7 +675,7 @@ Background: NO (runs and exits — status check) ```bash #!/bin/bash -/mnt/user/appdata/unraid_scripts/Failover/failover.sh --status +/mnt/user/appdata/unraid_scripts/Fallback/fallback.sh --status ``` **What it does:** @@ -700,7 +700,7 @@ Background: YES — test takes several minutes ```bash #!/bin/bash -/mnt/user/appdata/unraid_scripts/Failover/failover_test.sh --dry-run +/mnt/user/appdata/unraid_scripts/Fallback/fallback_test.sh --dry-run ``` **What it does:** @@ -721,31 +721,26 @@ Change `--dry-run` to nothing and run during a maintenance window. --- -### ── failover_state_reset ──────────────────────────────────────────────────── +### ── fallback_state_reset ──────────────────────────────────────────────────── -``` -Category: Failover -Name: failover_state_reset -Schedule: None — run manually (after testing or failed handback) -Background: NO -``` +> **Not yet built.** `fallback_state_reset.sh` is a planned utility — not in `Fallback/` yet. +> +> **Manual workaround** when state file is stuck in FAILOVER after a failed test or +> forced kill of fallback.sh: +> ```bash +> # Verify first — right containers on right server, DDNS correct, fallback.sh not running +> cat /boot/config/fallback_state.db +> echo "state=NORMAL" > /boot/config/fallback_state.db +> ``` +> Resets state only — does NOT start or stop any containers. -```bash -#!/bin/bash -/mnt/user/appdata/unraid_scripts/Failover/failover_state_reset.sh --status -``` - -**What it does:** -Shows current state file then prompts for confirmation before resetting to NORMAL. -Resets state file only — does NOT start or stop any containers. - -**When to use:** +**When you need this:** State file stuck in FAILOVER after a test that didn't complete cleanly. After killing -failover.sh directly (not via plugin Abort button). After a failed handback. +fallback.sh directly (not via plugin Abort button). After a failed handback. **Verify before resetting:** Right containers on right server. DDNS correct (`nslookup Gmer4Lfe.com`). -Both servers Tailscale connected. failover.sh not currently running. +Both servers Tailscale connected. fallback.sh not currently running. --- diff --git a/README.md b/README.md index 232c3be..04fd336 100644 --- a/README.md +++ b/README.md @@ -403,7 +403,7 @@ The DDNS sequencing is critical — one domain, one DDNS container, at all times handback sequence stops remote DDNS first, rsyncs, starts containers, starts local DDNS last. Split-brain DNS is prevented by design. -**→ Full detail: [README-Failover.md](Failover/README-Failover.md)** +**→ Full detail: [README-Fallback.md](Fallback/README-Fallback.md)** --- @@ -710,7 +710,7 @@ If you're setting this up from scratch on two servers: | README | What It Covers | |--------|---------------| -| [README-Failover.md](Failover/README-Failover.md) | DDNS sequencing, tiered failover, handback, split brain prevention, failover_test.sh | +| [README-Fallback.md](Fallback/README-Fallback.md) | DDNS sequencing, tiered fallback, handback, split brain prevention, fallback_test.sh | | [README-Docker_Essentials.md](Docker_Essentials/README-Docker_Essentials.md) | Two-tier container watchdog, memory limits, dependency ordering, skip list, daily/weekly restarts | | [README-Unraid_Essentials.md](unRAID_Essentials/README-Unraid_Essentials.md) | Three-tier system watchdog, WebGUI recovery, inotify tuning, PHP-FPM, log hygiene | | [README-Orchestrators.md](Orchestrators/README-Orchestrators.md) | What runs when, execution order, daily/weekly windows, adding jobs |