apache / apache/rocketmq

[Bug] Transaction producer didn't receive CheckTransacationState request of pending message

Closed
#8,316 6 comments 0 reactions 0 assignees View on GitHub
stale
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

unreleated

### RocketMQ version

5.x

### JDK Version

1.8

### Describe the Bug

image

In transaction message scenario, the first time execution result was UNKNOW. We expected to receive broker's check request later, but did not.

### Steps to Reproduce

1. Startup server in proxy cluster mode
2. Startup a remoting TransactionProducer
3. Sleep 5 seconds before sending one transaction message, and return UNKNOW in TransactionListener#executeLocalTransaction
4. Keep TransactionProducer running and don't send more messages
5. Observe whether TransactionListener#checkLocalTransaction will be called

### What Did You Expect to See?

TransactionListener#checkLocalTransaction will be called

### What Did You See Instead?

TransactionListener#checkLocalTransaction has not been called

### Additional Context

_No response_

Contributor guide

Open the contributing guide

Research direction

Reproduce the scenario in proxy cluster mode with a remoting TransactionProducer, returning UNKNOW from TransactionListener#executeLocalTransaction and waiting for TransactionListener#checkLocalTransaction. Trace the broker check-request path for a pending transaction, then verify that the callback is received without sending additional messages.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.