apache / apache/rocketmq

[Bug] Tiered storage cannot dispatch messages larger than the group commit size

Open
#10,998 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

all

### RocketMQ version

all

### JDK Version

all

### Describe the Bug

- 调小group commit size,默认消息体上限为 4 MiB,可以调小到2MB
- 首条消息记录 size >= tieredStoreGroupCommitSize 时,dispatch 列表为空。
- commitAsync 不执行,Tiered CQ offset 不推进。
- 调度器不断重试相同 offset,阻塞后续归档。

### Steps to Reproduce

1. 调小group commit size到2MB
2. 发送单条消息大于2MB
3. 该topic的消息将会阻塞dispatch

### What Did You Expect to See?

消息不应该被阻塞上传

### What Did You See Instead?

消息阻塞上传

### Additional Context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the tiered-storage dispatch case with group commit size set to 2 MB and a message larger than 2 MB, then inspect the dispatch scheduler and commitAsync path described in the report. Done means the oversized message is uploaded without blocking dispatch, the Tiered CQ offset advances, and later messages are no longer held at the same offset.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.