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]

Reply via email to