Files
pulse/internal/monitoring
rcourtman 4a5e234c12 Carry forward previous snapshots for guests we cannot poll this cycle
When the snapshot-polling budget runs out mid-loop, or a single guest's
GetVMSnapshots/GetContainerSnapshots call returns an error, the polling
function used to early-return without writing any state. That meant:

  1. snapshots successfully fetched for earlier guests in the same
     cycle were thrown away, and
  2. on the next successful cycle, the freshly-polled snapshots
     replaced the entire instance's snapshot list — wiping out any
     snapshots whose owning VM had failed to respond this round.

For users with a busy production cluster (many guests, intermittent
per-VM API failures), this manifests as "new snapshots never appear
in the Backups tab" because the failing VM keeps blanking the list
the moment a successful poll lands (#1437).

Now we read the previous snapshots for the instance up front, track
which guests we successfully polled this cycle, and at the end merge
the fresh data with previously-known snapshots for any guest we
couldn't reach. Successfully-polled guests get their fresh data so
new snapshots appear; failed guests keep their last-known list so
transient errors do not blank state. The early-return on deadline is
removed so the merge runs even on partial-failure cycles.

Tests cover the carry-forward path: a fresh successful poll for one
VM lands a new snapshot, and a concurrent failed poll for a second
VM preserves its previously-known snapshot rather than dropping it.
2026-04-30 11:43:01 +01:00
..
2025-12-02 17:21:48 +00:00
2025-12-02 17:21:48 +00:00