Preserve availability result delivery order

Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot] 2026-08-26 19:32:06 +01:00
parent 4bca38395a
commit a4a26fe842
6 changed files with 44 additions and 1 deletions

View file

@ -5898,6 +5898,19 @@ path. Delivery queues, authentication failures, and persisted host-report
buffers are destination-scoped; failure of one destination cannot block or
replay reports to another.
Assigned availability-probe observations use the same primary-report delivery
boundary. Concurrent probe completions must allocate their monotonic sequence
and append to the pending queue in one ordered critical section; the queue must
never contain a newer sequence before an older one. A report snapshot records
the last included sequence as its delivery high-water mark. A successful
primary acknowledgement removes only observations at or below that mark, while
observations completed after the snapshot remain queued for the next report;
failed or buffered delivery retains the whole unacknowledged batch. This keeps
multi-target probe concurrency from stranding already-delivered observations
or discarding observations that the primary never received. The scheduler and
concurrent-enqueue coverage in `internal/hostagent/availability_test.go` pins
the ordering and acknowledgement contract.
Observer configuration is explicit, versioned, and file-backed. It contains no
raw token values and resolves each token from a separate private absolute-path
file. Proxmox registration is also destination-scoped: the primary retains its

View file

@ -1581,6 +1581,7 @@
"internal/hostagent/agent_flushbuffer_test.go",
"internal/hostagent/agent_metrics_test.go",
"internal/hostagent/agent_new_test.go",
"internal/hostagent/availability_test.go",
"internal/hostagent/command_client_test.go",
"internal/hostagent/commands_deploy_test.go",
"internal/hostagent/commands_host_update_test.go",