- Source: rocketmq-all-5.5.1-source-release.zip [PGP] [SHA512]
- Binary: rocketmq-all-5.5.1-bin-release.zip [PGP] [SHA512] :::
Below is a summary of the issues addressed in the 5.5.1 release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start.
This maintenance release removes fastjson 1.x from the distribution (fastjson2 upgraded to 2.0.63 and DLedger bumped to 0.3.3.4), introduces a native RocksDB CqCompactionFilter with a cross-platform JNI shim, deprecates the legacy Broker DLedger mode, and delivers extensive stability and performance fixes across tiered storage, Lite Mode, Proxy, and the store layer.
Security & Dependencies
- [ISSUE #7703] Upgrade fastjson2 to 2.0.63 for security fixes by @lizhimins in https://github.com/apache/rocketmq/pull/10715
- [ISSUE #10651] bump DLedger to 0.3.3.4 (maintenance line) by @RongtongJin in https://github.com/apache/rocketmq/pull/10958
- [ISSUE #10641] Deprecate legacy Broker DLedger mode by @RongtongJin in https://github.com/apache/rocketmq/pull/10642
New Feature (Native RocksDB Compaction Filter)
Introduced a native ConsumeQueue compaction filter backed by a cross-platform JNI shim, replacing the previous pure-Java filter and the shaded rocketmq-rocksdb dependency with the official rocksdbjni artifact.
- [ISSUE #10334] Support native CqCompactionFilter with cross-platform JNI shim by @lizhimins in https://github.com/apache/rocketmq/pull/10335
- [ISSUE #10334] Make native CqCompactionFilter shim self-contained without rocksdbjni dependency by @lizhimins in https://github.com/apache/rocketmq/pull/10371
What's Changed
Tiered Storage
- [ISSUE #10462] Add memory backpressure to dispatch by @lizhimins in https://github.com/apache/rocketmq/pull/10470
- [ISSUE #10462] Fix concurrency bugs in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10471
- [ISSUE #10462] Optimize thread pool sizes for commit and fetch executors by @lizhimins in https://github.com/apache/rocketmq/pull/10472
- [ISSUE #10462] Improve error handling in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10473
- [ISSUE #10462] Standardize log format across tiered storage module by @lizhimins in https://github.com/apache/rocketmq/pull/10474
- [ISSUE #10462] Fix resource leaks and lifecycle issues in tiered storage by @lizhimins in https://github.com/apache/rocketmq/pull/10476
- [ISSUE #10572] Add dual TTL policy for tiered storage read-ahead cache by @Houlong66 in https://github.com/apache/rocketmq/pull/10573
Lite Mode
- [ISSUE #10253] Fix stale wildcardGroupMap entries caused by incorrect parsing during LiteTopic wildcard unregistration by @Kris20030907 in https://github.com/apache/rocketmq/pull/10254
- [ISSUE #10345] fix: preserve lite topic for auto-renew receipt handles by @Kris20030907 in https://github.com/apache/rocketmq/pull/10346
- [ISSUE #10384] Enforce Lite exclusive subscription eviction via server-side tombstones by @f1amingo in https://github.com/apache/rocketmq/pull/10386
- [ISSUE #10387] Support runtime hot-reload of maxClientEventCount in LiteEventDispatcher.ClientEventSet by @f1amingo in https://github.com/apache/rocketmq/pull/10388
- [ISSUE #10423] Optimize LiteConsumerLagCalculator.getLagCountTopK by deferring getStoreTimestamp to topK results only by @f1amingo in https://github.com/apache/rocketmq/pull/10424
- [ISSUE #10450] Selective double-write in CombineConsumeQueueStore by @imzs in https://github.com/apache/rocketmq/pull/10452
- [ISSUE #10453] Fix unexpected decrement of lmq counter by @imzs in https://github.com/apache/rocketmq/pull/10454
- [ISSUE #10549] Fix lite topic reset offset: memory leak, FIFO block bypass, and offset-0 reset failure by @f1amingo in https://github.com/apache/rocketmq/pull/10550
- [ISSUE #10560] Remove enableLiteEventMode config switch by @f1amingo in https://github.com/apache/rocketmq/pull/10561
- [ISSUE #10569] Support Lite Simple Consumer on server side by @f1amingo in https://github.com/apache/rocketmq/pull/10570
- [ISSUE #10615] Fix missing long-polling notification under CombineConsumeQueue selective double-write by @imzs in https://github.com/apache/rocketmq/pull/10616
- [ISSUE #10622] Resolve ConsumerOffsetManager dynamically in LiteEventDispatcher by @f1amingo in https://github.com/apache/rocketmq/pull/10623
- [ISSUE #10644] Add LMQ number gauge metric to Broker observability by @f1amingo in https://github.com/apache/rocketmq/pull/10645
- [ISSUE #10722] Lite Topic may not be cleaned up when message store timestamp is unavailable by @f1amingo in https://github.com/apache/rocketmq/pull/10723
Store & RocksDB
- [ISSUE #10344] Parameterize RocksDB CQ size amplification by @RongtongJin in https://github.com/apache/rocketmq/pull/10344
- [ISSUE #10270] Make Pop RocksDB BlockCache size configurable via MessageStoreConfig by @lizhimins in https://github.com/apache/rocketmq/pull/10271
- [ISSUE #10421] Fix Timer message rocksdb use wrong cache key by @echooymxq in https://github.com/apache/rocketmq/pull/10422
- [ISSUE #10417] Fix stale minOffset after consumeQueue truncation by @chenxu80 in https://github.com/apache/rocketmq/pull/10418
- [ISSUE #10521] Use madvise(MADV_RANDOM) to disable kernel read-ahead during correctMinOffset binary search by @lizhimins in https://github.com/apache/rocketmq/pull/10523
- [ISSUE #10639] Reuse a per-thread scratch buffer in CommitLog.checkMessageAndReturnSize by @wang-jiahua in https://github.com/apache/rocketmq/pull/10640
- [ISSUE #10813] Reduce temporary allocations in the LMQ append path by @ai-yang in https://github.com/apache/rocketmq/pull/10814
- [ISSUE #10819] Correct misleading CommitLog buffer comment by @fuyou001 in https://github.com/apache/rocketmq/pull/10820
- [ISSUE #10953] Clamp shifted message count range to queue bounds by @qianye1001 in https://github.com/apache/rocketmq/pull/10954
- [ISSUE #10959] Fix RocksDBConsumeQueue.iterateFrom should reject offset below min offset by @ymwneu in https://github.com/apache/rocketmq/pull/10960
- [ISSUE #9654] Optimize the bufferLocal size of the TimerMessageStore by @ymwneu in https://github.com/apache/rocketmq/pull/9655
- [ISSUE #10713] Optimize ConsumerFilterManager register CPU consumption by @ymwneu in https://github.com/apache/rocketmq/pull/10714
- [ISSUE #10515] Fix TransactionMetricsFlushService busy spin bug by @wang-jiahua in https://github.com/apache/rocketmq/pull/10517
- [ISSUE #10375] Fix race condition between deleteTopic and FlushConsumeQueueService by removing getLifeCycle indirection by @f1amingo in https://github.com/apache/rocketmq/pull/10376
- [ISSUE #10543] resolve data race in ServiceThread wakeup mechanism by @ShadowySpirits in https://github.com/apache/rocketmq/pull/10544
Broker & HA/Controller
- [ISSUE #10578] Fix master election maxOffset comparator overflow by @Aias00 in https://github.com/apache/rocketmq/pull/10578
- [ISSUE #10604] Fix TopicConfig DataVersion not persisted in split registration by @imzs in https://github.com/apache/rocketmq/pull/10605
- [ISSUE #10446] Support batch deletion of topics and subscription groups in broker by @wang-jiahua in https://github.com/apache/rocketmq/pull/10448
- [ISSUE #10435] Fix shared ClientChannelInfo preventing inactive channel expiry by @chuanxo in https://github.com/apache/rocketmq/pull/10437
- [ISSUE #10438] Fix buildTopicConfigSerializeWrapper exposing live topicConfigTable reference by @chuanxo in https://github.com/apache/rocketmq/pull/10439
- [ISSUE #10284] Fix consumerOffset deserialization error and add test by @ChineseTony in https://github.com/apache/rocketmq/pull/10287
- [ISSUE #10457] Fix RocketmqColdCtr logger level by @brucelwl in https://github.com/apache/rocketmq/pull/10447
- [ISSUE-10546] Add default implementation for rejectRequest() in NettyRequestProcessor by @f1amingo in https://github.com/apache/rocketmq/pull/10547
- fix(common): compare message queue ids safely by @yuluo-yx in https://github.com/apache/rocketmq/pull/10884
- fix(controller): compare partial broker identities safely by @yuluo-yx in https://github.com/apache/rocketmq/pull/10886
- fix(controller): detect inactive raft masters by @yuluo-yx in https://github.com/apache/rocketmq/pull/10885
- Improve ACL 2.0 authorization context handling by @dingshuangxi888 in https://github.com/apache/rocketmq/pull/10925
Proxy & gRPC
- [ISSUE #10260] Reject delayed transactional messages in gRPC send path by @yx9o in https://github.com/apache/rocketmq/pull/10261
- [ISSUE #10274] Fix ForwardMessageToDeadLetterQueue request mapping descriptor by @Kris20030907 in https://github.com/apache/rocketmq/pull/10275
- [ISSUE #10276] Fix PopConsumerService changeInvisibilityDuration losing CK record when visibilityTimeout collision by @qianye1001 in https://github.com/apache/rocketmq/pull/10277
- [ISSUE #10280] Restore opaque when proxy remoting forward fails by @yx9o in https://github.com/apache/rocketmq/pull/10281
- [ISSUE #10297] Set brokerName for messages returned by proxy local POP path by @yx9o in https://github.com/apache/rocketmq/pull/10298
- [ISSUE #10285] Fix preserve popTime when rebuilding AckResult by @yx9o in https://github.com/apache/rocketmq/pull/10286
- [ISSUE #10510] Add gRPC server permit keepalive configuration by @RockteMQ-AI in https://github.com/apache/rocketmq/pull/10516
- [ISSUE #10661] Unregister all producer topics on gRPC client termination by @yx9o in https://github.com/apache/rocketmq/pull/10662
- [ISSUE #10827] fix(broker): spin for the lock on same-attemptId pop orderly retry to avoid empty response by @lizhimins in https://github.com/apache/rocketmq/pull/10828
- [Fix #10460]: Pre-size ProxyContext map to avoid HashMap resize on request path by @HarshMehta112 in https://github.com/apache/rocketmq/pull/10461
Client & Remoting
- [ISSUE #10613] Fix async request-reply RequestCallback firing multiple times by @wang-jiahua in https://github.com/apache/rocketmq/pull/10614
- [ISSUE #10906] Prevent duplicate MQClientInstance creation by @qianye1001 in https://github.com/apache/rocketmq/pull/10907
- [ISSUE #10025] Treat blank local serve address as unset by @Aias00 in https://github.com/apache/rocketmq/pull/10663
- [ISSUE #10522] Reduce Remoting header encoding allocation via FastCodesHeader/RocketMQSerializable optimizations by @wang-jiahua in https://github.com/apache/rocketmq/pull/10522
- [ISSUE #8262] Fix bitsarray off by one by @SummCoder in https://github.com/apache/rocketmq/pull/10506
- fix: validate message batch input by @gaoxiaolei-s59 in https://github.com/apache/rocketmq/pull/10459
- [ISSUE #10247] Remove duplicate remove call in InvocationChannel by @yx9o in https://github.com/apache/rocketmq/pull/10248
Index & Query
- [ISSUE #10268] Fix incorrect time range file selection in IndexStoreService.queryAsync by @lizhimins in https://github.com/apache/rocketmq/pull/10269
- [ISSUE #10291] fix queryMessage default index type by @yuz10 in https://github.com/apache/rocketmq/pull/10292
Observability & Stability
- [ISSUE #10266] Fix OOM caused by OpenTelemetry 1.44 OtlpGrpcMetricExporter pool race by @Houlong66 in https://github.com/apache/rocketmq/pull/10267
- [ISSUE #10398] Fix native memory leak on TLS certificate hot-reload by @qianye1001 in https://github.com/apache/rocketmq/pull/10399
- [ISSUE #10216] Fix potential NPE in EscapeBridge when topicPublishInfo is null by @SGloria in https://github.com/apache/rocketmq/pull/10507
- [ISSUE #10419] Fix NPE when class filter route data is missing by @yin-bo-Final in https://github.com/apache/rocketmq/pull/10420
- [ISSUE #10492] Add debug logging for swallowed exceptions in StatsAllSubCommand by @SGloria in https://github.com/apache/rocketmq/pull/10493
- [ISSUE #10441] Reduce per-RPC allocation in metrics by caching static AttributeKey instances by @wang-jiahua in https://github.com/apache/rocketmq/pull/10443
Performance
- [ISSUE #10467] Reduce per-message allocation in createUniqID and valueOfMagicCode by @wang-jiahua in https://github.com/apache/rocketmq/pull/10469
- [ISSUE #10400] Cache Version.values() in MQVersion to avoid repeated array allocation by @qianye1001 in https://github.com/apache/rocketmq/pull/10401
- [ISSUE #10511] Replace Enum.values() loop with static array lookup in LanguageCode and SerializeType by @wang-jiahua in https://github.com/apache/rocketmq/pull/10513
- [ISSUE #10486] Add getMessageType(Map) overload to eliminate redundant properties decode by @wang-jiahua in https://github.com/apache/rocketmq/pull/10487
Configuration & Extensibility
- [ISSUE #10381] Make HashedWheelTimer parameters configurable in QueueLevelConsumerOrderInfoLockManager by @f1amingo in https://github.com/apache/rocketmq/pull/10382
- [ISSUE #10425] Revert split registration dataVersion change by @RongtongJin in https://github.com/apache/rocketmq/pull/10426
- [ISSUE #10817] Upgrade SpotBugs for JDK 21 compatibility by @fuyou001 in https://github.com/apache/rocketmq/pull/10818
- Classify BrokerShutdownTest as a medium Bazel test by @fuyou001 in https://github.com/apache/rocketmq/pull/10821
Testing & CI
- [ISSUE #10341] Fix Bazel CI build failure caused by Maven Central rate limiting by @lizhimins in https://github.com/apache/rocketmq/pull/10342
- [ISSUE #10373] Quarantine flaky tests and add detection plan docs by @lizhimins in https://github.com/apache/rocketmq/pull/10374
- [ISSUE #10373] Fix quarantined flaky tests and remove CI rerun workflow by @lizhimins in https://github.com/apache/rocketmq/pull/10379
- [ISSUE #10383] Align Bazel dependencies with Maven pom.xml by @lizhimins in https://github.com/apache/rocketmq/pull/10404
- [ISSUE #10389] Fix or ignore several flaky tests of PopPriorityIT by @imzs in https://github.com/apache/rocketmq/pull/10390
- [ISSUE #10410] Fix RocksDBOptionsFactoryTest compile failure by @RongtongJin in https://github.com/apache/rocketmq/pull/10411
- [ISSUE #10430] Add unit tests for srvutil package by @lsq3497 in https://github.com/apache/rocketmq/pull/10431
- [ISSUE #10475] Add unit tests for CleanupPolicyUtils by @quzizii in https://github.com/apache/rocketmq/pull/10475
- [ISSUE #10562] Optimize PopConsumerServiceTest#transferToFsStoreTest to avoid unnecessary background threads by @f1amingo in https://github.com/apache/rocketmq/pull/10563
- Fix flaky HATest semi-sync replication by @RongtongJin in https://github.com/apache/rocketmq/pull/10495
- Configure GitHub workflows to use concurrency cancel-in-progress by @apupier in https://github.com/apache/rocketmq/pull/10445
Documentation
- [ISSUE #10393] Fix outdated FAQ documentation URL in FAQUrl by @majialoong in https://github.com/apache/rocketmq/pull/10394
- [ISSUE #10593] Rename CLusterSendMsgRTCommand to ClusterSendMsgRTCommand by @yx9o in https://github.com/apache/rocketmq/pull/10594
- [DOCS] Update example dependency version from 4.3.0 to 5.5.0 by @H145608 in https://github.com/apache/rocketmq/pull/10349
- [DOCS] Update Chinese docs dependency version from 4.3.0/4.9.1 to 5.5.0 by @H145608 in https://github.com/apache/rocketmq/pull/10358
- [DOCS] Fix typo in Troubleshooting.md filename by @H145608 in https://github.com/apache/rocketmq/pull/10360
- [DOCS] Fix typos in documentation filenames by @quzizii in https://github.com/apache/rocketmq/pull/10505
- docs: fix broker IP typo in startup examples by @gaoxiaolei-s59 in https://github.com/apache/rocketmq/pull/10440
- docs: fix broker container reference and producer typos by @gaoxiaolei-s59 in https://github.com/apache/rocketmq/pull/10449
- docs: fix inaccurate examples and typos across developer guides by @lsq3497 in https://github.com/apache/rocketmq/pull/10456
- docs: remove dead Slack invite link from README by @fancy-agent in https://github.com/apache/rocketmq/pull/10483
- docs: fix dead link to tiered store config in tieredstore README by @fancy-agent in https://github.com/apache/rocketmq/pull/10484
- docs: format README for consistent Markdown style by @skant7 in https://github.com/apache/rocketmq/pull/10551
- Fix outdated constructor signatures in trace documentation by @SummCoder in https://github.com/apache/rocketmq/pull/10501
- Update ACL mqadmin commands in Chinese doc Section 7 by @SummCoder in https://github.com/apache/rocketmq/pull/10504
Full Changelog: https://github.com/apache/rocketmq/compare/rocketmq-all-5.5.0...rocketmq-all-5.5.1