Say fallback, not failover — the synonym was silently matching nothing in three renderers, plus retrying probes and a 2-minute handback window

This commit is contained in:
Gmer4Lfe
2026-08-22 13:43:30 -04:00
parent f1ba418aa8
commit ac17be2cd9
9 changed files with 85 additions and 29 deletions
+2 -2
View File
@@ -679,7 +679,7 @@ $runningScripts = array_unique($runningScripts);
<div class="vv-sug-body">
<pre class="vv-readme-body">Not enterprise HA. No SLAs, no quorum nodes, no guaranteed uptime — don't put your billing system on this.
What it is: mutual automatic failover between two independent unRAID servers. When one goes down the other starts its containers, cuts over DNS, and keeps users online. When it comes back, everything hands back in the correct sequence — DDNS stops, containers stop, rsync writeback runs, containers start on the primary, primary DDNS starts last — so users hit the returning server only after it's actually ready.
What it is: mutual automatic fallback between two independent unRAID servers. When one goes down the other starts its containers, cuts over DNS, and keeps users online. When it comes back, everything hands back in the correct sequence — DDNS stops, containers stop, rsync writeback runs, containers start on the primary, primary DDNS starts last — so users hit the returning server only after it's actually ready.
Built from scratch. Refined through a year of production testing. The DDNS sequencing and handback order were the hardest parts to get right. Both directions are exercised regularly with fallback_test.sh.</pre>
</div>
@@ -4967,7 +4967,7 @@ function vvPollSnapshot() {
const s = (d.fallback ?? 'UNKNOWN').toUpperCase();
fb.textContent = s;
fb.style.color = s === 'NORMAL' ? '#4caf50'
: s === 'FAILOVER' ? '#f44336'
: s === 'FALLBACK' ? '#f44336' // never 'FAILOVER' — see fallback.sh state_set
: s === 'NO_INTERNET' ? '#ff9800' : '#666';
}
const pt = document.getElementById('vv-snap-partner');