LVM provisioning can stop retrying after a transient failure
Author: shanduurCreated Sep 9, 2026Updated Sep 17, 2026
VG and LV reconciliation collect operational errors, log them, and return to an event-only loop. They neither schedule a retry nor return those errors to the runtime.
If a create or extend command fails before changing any resource, nothing from that attempt necessarily wakes the controller again. The requested volume or size can remain unapplied until an unrelated event arrives.
A regression test should fail one command before it changes storage, restore backend availability, and withhold further resource events. Reconciliation should still retry and finish. A separate case should allow partial success, so the retry must inspect current state before issuing another mutation.
Expected behavior
- Transient errors trigger bounded retries without external events.
- Permanent configuration errors do not cause repeated mutation attempts.
- Each retry checks current storage state and handles partial success safely.
- Tests cover no-event recovery, persistent failure, and cancellation.
References
Source: siderolabs/talos