KAFKA-20989: Add Notification Cleaners to Migrating Controller Servers - #23284
Open
yismail-stripe wants to merge 1 commit into
Open
KAFKA-20989: Add Notification Cleaners to Migrating Controller Servers#23284yismail-stripe wants to merge 1 commit into
yismail-stripe wants to merge 1 commit into
Conversation
Co-Authored-By: GPT-5.6 Sol
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.
Summary
As reported in KAFKA-20989, the KRaft controller creates persistent sequential notifications for config changes and ACL changes when in migration mode.
These nodes are normally deleted after 15 minutes by ZkNodeChangeNotificationListener, which is started by ZooKeeper-mode brokers.
However if brokers enter KRaft mode in dual-write phase, no cleanup listener remains while the migration controller continues dual-writing.
While clusters remain in this mode, /config/changes, /kafka-acl-changes, and /kafka-acl-extended-changes keep growing without deletion.
To solve this, we run the same listeners that the brokers used to purge old notifications but on controllers that are in migration mode.
Test Plan