RongtongJin opened a new issue, #10425:
URL: https://github.com/apache/rocketmq/issues/10425

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just asking a question, which should be created in 
GitHub Discussions.
   - [x] I have searched the GitHub Issues and GitHub Discussions of this 
repository and believe that this is not a duplicate.
   - [x] I have confirmed that this bug belongs to the current repository, not 
other repositories of RocketMQ.
   
   ### Runtime platform environment
   
   All platforms when broker split registration is enabled.
   
   ### RocketMQ version
   
   `develop` after #9521 / commit `2accb9797771b9395d427eef1d6a7982f27b8dfc`.
   
   ### JDK Version
   
   Not JDK-specific.
   
   ### Describe the Bug
   
   #9521 removed the `DataVersion` advancement from 
`TopicConfigManager#buildSerializeWrapper` when `enableSplitRegistration` is 
enabled.
   
   During split broker registration, `BrokerController#registerBrokerAll` sends 
topic configs in multiple `RegisterBrokerBody` requests. 
`RouteInfoManager#registerBroker` stores the broker `DataVersion` after each 
request and uses it to decide whether topic queue data needs to be updated. If 
every split request carries the same `DataVersion`, the later split requests 
can be treated as unchanged for topics that already exist under the broker, so 
topic config updates in those later batches may be skipped.
   
   ### Steps to Reproduce
   
   1. Enable broker split registration with `enableSplitRegistration=true` and 
configure enough topics to require multiple registration batches.
   2. Let the broker register once so the name server already has route data 
for those topics.
   3. Update topic configs for topics that are not in the first split batch.
   4. Trigger broker registration again.
   
   ### What Did You Expect to See?
   
   Every split registration batch should be processed as a topic config update, 
so name server route data reflects updated topic configs from all batches.
   
   ### What Did You See Instead?
   
   Only batches that are considered changed by `DataVersion` are guaranteed to 
update existing topic route data. Later split batches with the same 
`DataVersion` can be skipped for existing topics.
   
   ### Additional Context
   
   Reverting #9521 restores the previous behavior where each split registration 
wrapper advances the topic config `DataVersion`, so each batch is visible as a 
distinct update to the name server.
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to