[Bug] Proxy remoting end transaction ignores async failures
- 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
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