apache / apache/rocketmq

[Bug] Proxy remoting end transaction ignores async failures

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

### What happened?

`TransactionActivity` handles Proxy remoting end-transaction requests by calling `messagingProcessor.endTransaction(...)`, but it ignores the returned `CompletableFuture` and immediately returns a success response.

The underlying transaction processor can complete the future exceptionally, for example when transaction data is missing or the broker operation fails. Those failures are not reflected on the remoting response path.

### Expected behavior

Proxy remoting end-transaction handling should wait for the async result and map failures through the existing remoting exception mapping instead of returning success before the operation finishes.

### Scope

RocketMQ Proxy / remoting transaction compatibility. This is related to the Proxy protocol upgrade track because remoting clients should receive accurate runtime operation results through Proxy.

### Suggested fix

Chain or wait on `messagingProcessor.endTransaction(...)` in the same style as other remoting activities that call async processor methods, and add tests for success and failure responses.

Contributor guide

Open the contributing guide

Research direction

Start at TransactionActivity and trace its Proxy remoting end-transaction handling through messagingProcessor.endTransaction(...). Compare other remoting activities that handle asynchronous processor results, then add tests covering successful and exceptional responses. Done means failures are mapped through the existing remoting exception handling instead of returning success early.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
67/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.