You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by ji...@apache.org on 2026/06/03 13:10:56 UTC
(rocketmq) 01/01: [ISSUE #10425] Revert split registration dataVersion change
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 <ji...@mails.ucas.ac.cn>
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());
+ }
}