apache / apache/rocketmq

[Bug] TopicConfig DataVersion not persisted in split registration path

Open Beginner friendly
#10,604 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
22.6k
Forks
12k
Avg merge
3d 1h
Merged PRs (30d)
27

Description

### Before Creating the Bug Report

- [x] I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq/discussions).

- [x] I have searched the [GitHub Issues](https://github.com/apache/rocketmq/issues) and [GitHub Discussions](https://github.com/apache/rocketmq/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

.

### RocketMQ version

.

### JDK Version

.

### Describe the Bug

In TopicConfigManager#buildSerializeWrapper, when enableSplitRegistration
is enabled, the DataVersion was advanced by directly calling getDataVersion().nextVersion().

Under RocksDB config storage, the version was only bumped in memory
and never persisted, since RocksDBTopicConfigManager overrides
updateDataVersion() to write the version into RocksDB.

We should use updateDataVersion() to advance the version through the unified,
overridable path so it is persisted correctly and carries the proper stateMachineVersion.

### Steps to Reproduce

.

### What Did You Expect to See?

.

### What Did You See Instead?

.

### Additional Context

.

Contributor guide

Open the contributing guide

Research direction

Start at TopicConfigManager#buildSerializeWrapper and read the RocksDBTopicConfigManager override of updateDataVersion(). Trace the split registration path and verify that advancing DataVersion is persisted in RocksDB and retains the proper stateMachineVersion.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, databases, distributed-systems
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.