suvodeep-pyne opened a new pull request, #17684: URL: https://github.com/apache/pinot/pull/17684
## Summary - Remove fragile string check (`"direct buffer"`) from `DirectOOMHandler.exceptionCaught()` and use `instanceof OutOfMemoryError` alone - Netty's `OutOfDirectMemoryError` message says `"direct memory"`, not `"direct buffer"` — the check never matched, causing the handler to miss every Netty-triggered direct memory OOM - When missed, the error fell through to `DataTableHandler` which logged but did not close the corrupted channel, leaving it open but permanently unable to decode responses (TCP byte stream desynchronized) - `instanceof OutOfMemoryError` without string matching is safe because only direct memory OOM reaches this handler: the upstream frame decoder uses `PooledByteBufAllocator(preferDirect=true)`, and heap OOM from the downstream `DataTableHandler` never propagates backwards in Netty's exception chain ## Test plan - [x] Unit test: Netty direct memory OOM (`"failed to allocate ... direct memory"`) is caught - [x] Unit test: JVM direct buffer OOM (`"Direct buffer memory"`) is caught - [x] Unit test: Non-OOM exceptions are propagated via `ctx.fireExceptionCaught()` - [ ] Existing tests pass (no regression) -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
