Skip to content

Commit 2ddd4de

Browse files
kvapsclaude
andauthored
chore(release): prepare v0.1.9 (#93)
Single-fix patch release: Bug 399 (resource flaps forever after vd d — stale spec.volumes projection + observer volume-cache never evicting on diskless replicas). Versions v0.1.6-v0.1.8 are skipped: those tags pre-exist from an inherited lineage and are not blockstor releases. Signed-off-by: Andrei Kvapil <kvapss@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent 9582b4c commit 2ddd4de

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ All notable changes to blockstor are recorded here. The format follows
44
[Keep a Changelog](https://keepachangelog.com/), and the project follows
55
[Semantic Versioning](https://semver.org/).
66

7+
## v0.1.9 — 2026-06-03
8+
9+
Patch release with a single operator-reported fix. Versions v0.1.6–v0.1.8 are skipped: those tags pre-exist in the repository from an inherited lineage and do not correspond to blockstor releases.
10+
11+
### Fixed
12+
13+
- **Resource flaps forever after `vd d` (Bug 399, #92)** — deleting a volume definition removed the volume from the RD and the DRBD kernel, but two add-only projections never forgot it: the controller's RD → `Resource.spec.volumes` projection kept a stale entry, and the satellite observer's volume cache only evicted on the events2 `destroy device` frame — which a DISKLESS/tiebreaker replica never receives (it has no local disk to destroy) — so the observer re-emitted a phantom `status.volumes[n]=Diskless` every kernel tick, oscillating the resource status and PATCH-storming the apiserver ~1/s indefinitely. The controller now prunes `spec.volumes` entries absent from the RD, and the observer converges its volume cache against the live RD volume set (the `blockstor.io/volume-numbers` annotation), so both diskful and diskless replicas settle to exactly the remaining volumes. The e2e `volumes_settled` flap gate was also made kine-safe (volume-set stability across polls instead of resourceVersion equality, which k3s/kine inflates with the global store revision).
14+
715
## v0.1.5 — 2026-06-03
816

917
Large bug-fix release. Spans the REST API wire-validation surface (Bugs 356–383: input validation, typed `FAIL_*` envelopes, idempotency), the satellite DRBD / LUKS / metadata paths, and a multi-round operator-lifecycle bug-hunt that closed the four operator-reported DRBD lifecycle bugs the REST sweep missed plus their adjacent classes (Bugs 384–397). Every operator-facing fix lands with an L1/L2 unit/contract test, an L6 `cli-matrix` cell, and an L7 operator-replay workflow, validated on the live Talos+DRBD stand.

0 commit comments

Comments
 (0)