jolshan opened a new pull request #10754:
URL: https://github.com/apache/kafka/pull/10754


   Upon upgrading to IBP 2.8, topic ID can end up getting reassigned which can 
cause errors in LeaderAndIsr handling when the partition metadata files from 
the previous ID are still on the broker. 
   
   Topic IDs are stored in the TopicZNode. The behavior of the code before this 
fix is as follows:
   When we have a controller with an older IBP version and we reassign 
partitions, the TopicZNode is overwritten and we lose the topic ID. Upon 
electing a 2.8 IBP controller, we will see the TopicZNode is missing a topic ID 
and will generate a new one. If the broker still has the old partition metadata 
file, we will see an ID mismatch that causes the error.
   
   This PR changes controller logic so that we maintain the topic ID in the 
controller and the ZNode even when IBP < 2.8. This means that in the scenario 
above, reassigning partitions will not result in losing the topic ID and 
reassignment.
   
   Topic IDs may be lost when downgrading the code below version 2.8, but upon 
re-upgrading to code version 2.8, before bumping the IBP, all partition 
metadata files will be deleted to prevent any errors.
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to