Recover and qualify interrupted topic deletion on the 3.9 bridge - #597
Open
bringhurst wants to merge 5 commits into
Open
bringhurst wants to merge 5 commits into
bringhurst wants to merge 5 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
An interrupted 3.0 topic deletion can remove the partition's leader/ISR znode but leave reassignment fields in the topic parent. A returning 3.9 controller then repeatedly fails reassignment startup. In the retained failed recovery run, producer-ID allocation also timed out.
Change
Under the existing cleanup gate, and only while deletion is enabled, recover marked deletions that have no leader/ISR state. Preserve every assigned replica, fence the ZooKeeper write, and remove only the affected reassignment entries. Leave unmarked topics, partitions with leader state, and disabled paths alone. Normal replica deletion acknowledgements still control removal.
Add a maintained startup prelude for both broker generations. It seeds the interrupted deletion, requires assignment removal, recreates the name, and verifies exact records with the unchanged 3.0 client jar. It runs with bridge mode off, so its log markers cannot stand in for mixed-phase protocol checks.
Scenario revision 6 requires both generations' deletion and record checks. The auditor rejects revision 5 and each missing evidence row. The CI companion now selects #596, which also repairs the direct native response bit expected by #595.
Evidence
The latest #594 CI also has a separate recreated-topic metadata timeout. A diagnostic replay found long old-client bootstrap waits, but this PR does not claim that separate failure is resolved. No client profile, deadline, or record assertion was relaxed. Full final-pair qualification and release approvals remain required.
Based on #594. The 3.0 counterpart stays in its own release history.