Skip to content

[Bug] SwitchTimerEngine persists wrong config key, so RocksDB timer switch is not durable #10086

@Liu-ZhenYu

Description

@Liu-ZhenYu

Before Creating the Bug Report

  • I found a bug, not just asking a question, which should be created in GitHub Discussions.

  • I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.

  • I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.

Runtime platform environment

linux

RocketMQ version

develop

JDK Version

java11

Describe the Bug

In AdminBrokerProcessor.switchTimerEngine() method, Switching to the RocksDB timer engine persists timerUseRocksDB instead of timerRocksDBEnable, so the change isn’t durable and may revert after restart. The error message also has a typo (“muse”) and references the wrong key.

Image

Steps to Reproduce

  1. Start broker with timerRocksDBEnable=true.
  2. Run mqadmin switchTimerEngine to switch to RocksDB (TIMER_ENGINE_ROCKSDB_TIMELINE).
  3. Check broker config file or printed config.
  4. Restart broker and verify the engine selection.

What Did You Expect to See?

After switching to RocksDB, the broker config should persist timerRocksDBEnable=true, and the error message should reference the correct key.

What Did You See Instead?

The config persisted timerUseRocksDB=true, and the error message referenced the wrong key with a typo (“muse”). After restart, the engine may fall back to non‑RocksDB.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions