docs(REPORT): live host-reboot x2 acceptance — sdb<->sdc swap tolerated by UUID
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -66,10 +66,30 @@ NOT take the legacy `RebootGuest` branch. The operator's pre-created-slot-pool i
|
||||
skip — they assert on Linux, the agent's OS). Linux green gate + companion red-proof run on the
|
||||
build server (192.168.0.180, go1.26.0) — see live-acceptance section.
|
||||
|
||||
## Live acceptance
|
||||
## Live acceptance — real host reboot ×2 on felhom-pve (agent v0.37.0 deployed)
|
||||
|
||||
Real host reboot ×2 on felhom-pve: before/after `lsblk`, shared-parent-before-pve-guests ordering,
|
||||
both drives (felhom-usb + felhom-flash) remount by UUID across a `/dev/sdX` reshuffle, guest 9201
|
||||
drive-backed apps recover, FileBrowser non-stale. (Captured during the supervised run.)
|
||||
**Pre-reboot live proof of the root cause + fix:** felhom-usb's `mnt-felhom\x2dusb.mount` was
|
||||
`disabled` while felhom-flash's was `enabled`. After deploying v0.37.0 and restarting the agent,
|
||||
`ReassertEnrolledMounts` logged `re-asserted enrolled mount by UUID (enable --now) … wasMounted=true`
|
||||
and the unit went `enabled` (wants-symlink created) — the mounted-but-disabled case handled.
|
||||
|
||||
**The `/dev/sdX` reshuffle actually occurred and was tolerated as a no-op** (the headline result):
|
||||
|
||||
| Drive (UUID) | before #1 | after #1 | after #2 |
|
||||
|---|---|---|---|
|
||||
| felhom-usb (`da9e7089…`, 931G) | `sdb` | **`sdc`** | `sdb` |
|
||||
| felhom-flash (`81a26531…`, 119G) | `sdc` | **`sdb`** | `sdc` |
|
||||
|
||||
The two drives **swapped letters** on reboot #1 and swapped back on reboot #2. Both times each
|
||||
landed at its correct mountpoint by UUID — `findmnt /mnt/felhom-usb` → the `da9e7089` device,
|
||||
`/mnt/felhom-flash` → the `81a26531` device — never the wrong device. Both units `enabled`+`active`,
|
||||
no agent storage errors. On a clean boot the (now-enabled) units auto-mount, so `ReassertEnrolledMounts`
|
||||
finds them mounted+enabled and skips (the intended no-churn steady state).
|
||||
|
||||
- **Ordering:** `felhom-shared-parent.service` Finished `18:02:16` / `18:06:01`; `pve-guests.service`
|
||||
Starting `18:02:22` / `18:06:07` — shared parent re-establishes ~6s BEFORE the guests, both reboots.
|
||||
- **Guest recovery:** guest 9201 came up and all drive-backed apps recovered (immich, paperless,
|
||||
jellyfin, calibre, audiobookshelf, radarr, romm, komga) both reboots; romm's backing mount
|
||||
`/mnt/felhom-drives/felhom-flash/userdata/roms` resolved correctly across the swap.
|
||||
|
||||
Secrets (local_api token / leaf fingerprint) handled out-of-band — none committed.
|
||||
|
||||
Reference in New Issue
Block a user