From 0e56f56eec9b55a2e5621157829ed836e06c475c Mon Sep 17 00:00:00 2001 From: RongtongJin Date: Wed, 3 Jun 2026 21:10:13 +0800 Subject: [PATCH] [ISSUE #10425] Revert split registration dataVersion change --- .../rocketmq/broker/topic/TopicConfigManager.java | 3 +++ .../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 cce38da0b2e..b481242b121 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 TopicConfigAndMappingSerializeWrapper buildSerializeWrapper( 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 5b2ea0b4d51..af1066a4d0c 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.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 void testSubTopicConfigTable() { 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()); + } }