RockteMQ-AI commented on issue #11170: URL: https://github.com/apache/rocketmq/issues/11170#issuecomment-5691867148
**Issue Evaluation** Category: `type/bug` | Status: **Confirmed** The reported race condition in `ClusterTransactionService.scanProducerHeartBeat()` is valid. The issue correctly identifies that `ProducerManager.groupOnline(group)` returning false before the first producer heartbeat causes premature deletion of the transaction subscription via `groupClusterData.computeIfPresent()`. **Root Cause:** The scan does not distinguish between a group that has permanently gone offline and one that has not yet registered its first heartbeat. Once the subscription is removed, subsequent heartbeats only update `ProducerManager` but do not rebuild the deleted mapping. **Impact:** Transaction checks cannot reach the producer if no further transaction messages are sent after the race window. This affects reliability of transaction message processing in Proxy cluster mode. **Severity:** medium — The bug is deterministic under specific timing conditions but does not cause data loss; it prevents transaction status checks from reaching the producer. **Related:** This is a recurrence of #8316 (closed by stale bot) and relates to #5862/#5865. The earlier fix proposal #8320 introduced a grace period but was not merged. **Recommendation:** A grace period or subscription timestamp (as proposed in #8320) would prevent premature deletion. Alternatively, the scan could skip groups whose subscriptions were created within a recent time window. --- *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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
