RockteMQ-AI commented on issue #10745: URL: https://github.com/apache/rocketmq/issues/10745#issuecomment-5153902140
**Issue Evaluation** Category: `type/bug` | Status: **Confirmed** The reported issue has been verified against the current codebase on `develop` branch. **Root Cause:** In `Http2ProxyBackendHandler`, two failure paths close only the backend channel without closing the paired frontend (inbound) channel: 1. `channelRead()` — when `future.isSuccess()` is `false`, only `future.channel().close()` is called (backend side). The `inboundChannel` remains open. 2. `exceptionCaught()` — only calls `closeOnFlush(ctx.channel())` (backend side). The `inboundChannel` is not closed. The symmetric issue exists in `Http2ProxyFrontendHandler.channelRead()` — on write failure, only the outbound channel is closed while the backend channel stays open. `channelInactive()` does close the peer channel, but it only fires after the channel becomes inactive — if the close is not propagated, the peer can remain open indefinitely, causing a resource leak. **Impact:** Proxy layer — connection/resource leak under backend failure scenarios. **Severity:** Medium **Proposed Fix:** Close both channels on failure paths in both `Http2ProxyBackendHandler` and `Http2ProxyFrontendHandler`. An automated fix proposal will be generated. Reply `/approve` to proceed with PR generation, or `/reject` to decline. --- *Automated evaluation by github-manager-bot* -- 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]
