This is an automated email from the ASF dual-hosted git repository. RongtongJin pushed a commit to branch revert-9521-split-registration-dataversion in repository https://gitbox.apache.org/repos/asf/rocketmq.git
commit 0e56f56eec9b55a2e5621157829ed836e06c475c Author: RongtongJin <[email protected]> AuthorDate: Wed Jun 3 21:10:13 2026 +0800 [ISSUE #10425] Revert split registration dataVersion change --- .../apache/rocketmq/broker/topic/TopicConfigManager.java | 3 +++ .../rocketmq/broker/topic/TopicConfigManagerTest.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java index cce38da0b2..b481242b12 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java @@ -647,6 +647,9 @@ public class TopicConfigManager extends ConfigManager { topicConfigWrapper.setTopicConfigTable(topicConfigTable); topicConfigWrapper.setTopicQueueMappingInfoMap(topicQueueMappingInfoMap); topicConfigWrapper.setDataVersion(this.getDataVersion()); + if (this.brokerController.getBrokerConfig().isEnableSplitRegistration()) { + this.getDataVersion().nextVersion(); + } return topicConfigWrapper; } diff --git a/broker/src/test/java/org/apache/rocketmq/broker/topic/TopicConfigManagerTest.java b/broker/src/test/java/org/apache/rocketmq/broker/topic/TopicConfigManagerTest.java index 5b2ea0b4d5..af1066a4d0 100644 --- a/broker/src/test/java/org/apache/rocketmq/broker/topic/TopicConfigManagerTest.java +++ b/broker/src/test/java/org/apache/rocketmq/broker/topic/TopicConfigManagerTest.java @@ -38,6 +38,7 @@ import org.apache.rocketmq.common.attribute.LongRangeAttribute; import org.apache.rocketmq.common.constant.PermName; import org.apache.rocketmq.common.utils.QueueTypeUtils; import org.apache.rocketmq.remoting.protocol.DataVersion; +import org.apache.rocketmq.remoting.protocol.body.TopicConfigAndMappingSerializeWrapper; import org.apache.rocketmq.store.DefaultMessageStore; import org.apache.rocketmq.store.config.MessageStoreConfig; import org.junit.Assert; @@ -400,4 +401,17 @@ public class TopicConfigManagerTest { Assert.assertFalse(result.containsKey(String.format("topic%05d", beginIndex - 1))); Assert.assertFalse(result.containsKey(String.format("topic%05d", endIndex + 1))); } + + @Test + public void testBuildSerializeWrapperUpdatesDataVersionWhenSplitRegistrationEnabled() { + brokerController.getBrokerConfig().setEnableSplitRegistration(true); + long counterBefore = topicConfigManager.getDataVersion().getCounter().get(); + + TopicConfigAndMappingSerializeWrapper wrapper = + topicConfigManager.buildSerializeWrapper(topicConfigManager.getTopicConfigTable()); + + long counterAfter = topicConfigManager.getDataVersion().getCounter().get(); + Assert.assertEquals(counterBefore + 1, counterAfter); + Assert.assertEquals(counterAfter, wrapper.getDataVersion().getCounter().get()); + } }
