Before Creating the Bug Report
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
- Enable broker split registration with
enableSplitRegistration=true and configure enough topics to require multiple registration batches.
- Let the broker register once so the name server already has route data for those topics.
- Update topic configs for topics that are not in the first split batch.
- 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.
Before Creating the Bug Report
Runtime platform environment
All platforms when broker split registration is enabled.
RocketMQ version
developafter #9521 / commit2accb9797771b9395d427eef1d6a7982f27b8dfc.JDK Version
Not JDK-specific.
Describe the Bug
#9521 removed the
DataVersionadvancement fromTopicConfigManager#buildSerializeWrapperwhenenableSplitRegistrationis enabled.During split broker registration,
BrokerController#registerBrokerAllsends topic configs in multipleRegisterBrokerBodyrequests.RouteInfoManager#registerBrokerstores the brokerDataVersionafter each request and uses it to decide whether topic queue data needs to be updated. If every split request carries the sameDataVersion, 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
enableSplitRegistration=trueand configure enough topics to require multiple registration batches.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
DataVersionare guaranteed to update existing topic route data. Later split batches with the sameDataVersioncan 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.