You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "woaishixiaoxiao (via GitHub)" <gi...@apache.org> on 2026/09/02 12:14:23 UTC
[I] [Bug] Tiered storage cannot dispatch messages larger than the group commit size [rocketmq]
woaishixiaoxiao opened a new issue, #10998:
URL: https://github.com/apache/rocketmq/issues/10998
### 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_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [Bug] Tiered storage cannot dispatch messages larger than the group commit size [rocketmq]
Posted by "RockteMQ-AI (via GitHub)" <gi...@apache.org>.
RockteMQ-AI commented on issue #10998:
URL: https://github.com/apache/rocketmq/issues/10998#issuecomment-5509980208
**Issue Evaluation**
Category: `bug` | Status: **Confirmed**
The reported issue has been verified against the current codebase.
**Root Cause:** In `MessageStoreDispatcherImpl.doScheduleDispatch` (`tieredstore/src/main/java/org/apache/rocketmq/tieredstore/core/MessageStoreDispatcherImpl.java`, lines 260-266), the batch-building loop checks `bufferSize >= groupCommitSize` **before** appending the current message. When the very first message's `cqUnit.getSize()` is already >= `groupCommitSize`, the loop breaks immediately, leaving both `appendingBufferList` and `dispatchRequestList` empty.
**Impact:**
- `commitAsync` (guarded by `if (!dispatchRequestList.isEmpty())` at lines 303-311) is never called
- The tiered ConsumeQueue offset does not advance (line 296 sets `endOffset == currentOffset`)
- The method returns `false` (line 336), causing the scheduler to retry the same offset indefinitely
- All subsequent messages for this topic are blocked from archiving to tiered storage
**Severity:** High — a single oversized message (still within the 4MB max limit) can permanently stall tiered storage dispatch for the entire topic.
**Suggested Fix:** The size check should allow at least one message to be appended per batch, even if it exceeds `groupCommitSize`. For example, change the condition to `if (bufferSize >= groupCommitSize && !appendingBufferList.isEmpty())` so the first oversized message is still included.
An automated fix proposal can be generated. Reply `/approve` to proceed with PR generation, `/revise` to request a different approach, or `/reject` to decline.
---
*Automated evaluation by github-manager*
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [Bug] Tiered storage cannot dispatch messages larger than the group commit size [rocketmq]
Posted by "jjj-n (via GitHub)" <gi...@apache.org>.
jjj-n commented on issue #10998:
URL: https://github.com/apache/rocketmq/issues/10998#issuecomment-5526293020
Hi, I'd like to take this issue. Plan:
1. Reproduce: set `tieredStoreGroupCommitSize` to 2MB, send a single message larger than that, and observe the dispatcher retrying the same offset with no progress (empty `dispatchRequestList`, Tiered CQ offset stuck).
2. Fix: in `MessageStoreDispatcherImpl#doScheduleDispatch`, handle the boundary where the very first message's size is already >= `groupCommitSize` — it should still be dispatched as its own single-message batch instead of breaking out with empty `appendingBufferList`/`dispatchRequestList`.
3. Add a regression test in the `tieredstore` module covering first-message size == and > `groupCommitSize`.
Could this be assigned to me? Thanks!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org