Skip to content

Let fixture reassignments coexist with metadata churn - #601

Open
bringhurst wants to merge 4 commits into
3.9-li-bridge/admission-dispositionsfrom
3.9-li-bridge/reassignment-coexistence
Open

bringhurst wants to merge 4 commits into
3.9-li-bridge/admission-dispositionsfrom
3.9-li-bridge/reassignment-coexistence

Conversation

@bringhurst

@bringhurst bringhurst commented Sep 12, 2026

Copy link
Copy Markdown
Member

PR 600's process job failed because the reassignment CLI refuses to execute while any reassignment exists unless --additional is supplied. The continuous metadata-churn workload legitimately had another move in progress. This was not a broker error or the earlier client-bootstrap timeout.

Use a shared fixture helper that supplies --additional for the exact reassignment file. Keep the existing record checks, ISR checks, delays and deadlines.

The cancellation fixture also needs this coexistence, but simply combining --additional and CLI --throttle would rewrite topic throttles for other active moves. Configure only the cancellation topic's replica selectors and retain the fixture's existing 1024-byte/s broker rates, then execute the scoped move without CLI --throttle.

Evidence:

  • Before unit checks reproduce the CLI refusal in both offline reuse and cancellation.
  • The new checks require scoped files, --additional, no global CLI throttle rewrite, the unchanged rate, and configuration before execution. All 94 Python tests and actual RAT pass.
  • A real-broker probe keeps an unrelated move deliberately pending. The unmodified CLI refuses; the actual new runner helper succeeds. The unrelated assignment and topic throttle remain unchanged, and cancellation preserves exact records.
  • The first probe over-specified cancelled replica order; Kafka restored [1,0], which the existing scenario already accepts. That failed evidence is retained. The corrected probe follows the existing membership contract and passes; no scenario assertion or deadline was relaxed.
  • Scoped bundles remain incomplete migrations. The complete updated process now passes all sixteen client checkpoints and the independent archive/source audit. This PR's complete CI also passed at 392acb1 with matching source-tree/helper fingerprints and all seven scoped execution commands. Final head 135ecd1 changes only review/result Markdown after that tested head.

No Kafka runtime code or client configuration changes. Based on #600.

@bringhurst
bringhurst added this pull request to stack #582 September 12, 2026 02:24
@bringhurst

Copy link
Copy Markdown
Member Author

Final verification for this repair is complete:

  • The updated local scenario-6 process passed on runner a93bed4 with the immutable f919812 / 8086d17 broker archives. An independent audit checked archive/source identity, all 28 required operations, sixteen unchanged-client/Connect checkpoints and the final record checks.
  • This PR's complete CI passed at 392acb1. The retained evidence matches that PR's Git tree and helper fingerprints, uses the intended 3.0 companion, and contains all seven scoped --execute --additional calls without CLI --throttle rewriting.
  • The earlier full runtime/JVM/wrapper bundle remains separate evidence, including all 133 matching-jar wrapper tests. No combined verifier fingerprint was fabricated.
  • The final successor 135ecd1 changes only the review/result documentation; runtime, test and orchestration code are unchanged from the passing CI head.

The failed PR 600 run is retained and explained by the CLI's global guard. The deterministic coexistence probe verifies preservation of the unrelated assignment and topic throttle. No client setting, retry policy, deadline or record assertion was relaxed.

This completes the review/verification evidence for the code and fixture repair, not production approval. Deployment still requires approved published artifacts and actual owner-reviewed client, state, runtime, capacity and security evidence. In particular, F28's inherited client limitation must be covered by the explicit unchanged-client qualification gate; no client configuration was chosen by this review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant