Skip to content

fix(storage): reconcile multi-pool writes and conditional deletes - #178

Merged
Vonng merged 3 commits into
mainfrom
codex/multipool-correctness-20260911
Sep 11, 2026
Merged

fix(storage): reconcile multi-pool writes and conditional deletes#178
Vonng merged 3 commits into
mainfrom
codex/multipool-correctness-20260911

Conversation

@Vonng

@Vonng Vonng commented Sep 11, 2026

Copy link
Copy Markdown
Member

Multi-pool replica writes can overwrite or hide newer Object Lock metadata, and conditional DELETE can select the wrong version, leave another readable copy, or acknowledge a failed deletion. Use the existing pools-layer object lock across writes, completion and healing; reconcile each ordered metadata field across the addressed version’s copies, and retire competing copies only after replacement commits. Conditional DELETE checks the logical version once and propagates cleanup failures while preserving version history.

The new two-pool fixtures reproduce these failures and cover draining/rebalancing owners, persisted uploads, null versions, metadata COPY, concurrent mutations, and cleanup retries. Retirement also preserves remote-tier references still owned by a surviving copy, including restored objects and failed deletion, while distinct references remain eligible for garbage collection. The retained Linux acceptance report also completes the agreed #116 V1 check: 0806, 0903 and the candidate all recovered within the bounded data canary and retained every acknowledged object. The documented startup window remains observable; the health API semantics are unchanged.

Validation: full cmd and internal suites, focused race checks, Linux/arm64 pooled/replica/delete/movement tests, lint, vet, generated-file and branding/entrypoint checks. Linux OIDC login/add-provider and negative-control checks confirm the TLS fix already on main. The hidden affected OIDC deployment still requires retesting, so #154 remains open.

Compatibility: the on-disk format needs no migration. Multi-pool conditional mutations require readable candidate state and successful cleanup; failures are returned to the client. The existing retained MINIO protocol/configuration identifiers remain intact.

Evidence: release acceptance report. All commits carry the required DCO sign-off.

Closes #133.
Closes #144.
Closes #116.
Refs #154.

Signed-off-by: Feng Ruohang <rh@vonng.com>
Signed-off-by: Feng Ruohang <rh@vonng.com>
@Vonng
Vonng force-pushed the codex/multipool-correctness-20260911 branch from a392c0f to 51d4134 Compare September 11, 2026 12:06
Signed-off-by: Feng Ruohang <rh@vonng.com>
@Vonng
Vonng merged commit 12f631b into main Sep 11, 2026
8 checks passed
@Vonng
Vonng deleted the codex/multipool-correctness-20260911 branch September 11, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant