[ 
https://issues.apache.org/jira/browse/THRIFT-6354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer resolved THRIFT-6354.
--------------------------------
    Fix Version/s: 0.26.0
       Resolution: Fixed

> Java nonblocking servers keep reading a connection whose frame waits for read 
> buffer memory
> -------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-6354
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6354
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Library
>            Reporter: Jens Geyer
>            Priority: Minor
>             Fix For: 0.26.0
>
>
> When a frame does not fit into the read buffer memory that is left 
> ({{maxReadBufferBytes}}), the nonblocking servers defer it but leave the 
> connection registered for reading. The selector then returns for that 
> connection straight away, again and again, and the selector thread stays busy 
> until memory is released. With {{maxReadBufferBytes}} set below the maximum 
> frame size, a frame larger than the whole limit is never admitted. Related to 
> THRIFT-5494.
> Fixed on master by 
> [6e992c1d1|https://github.com/apache/thrift/commit/6e992c1d1b3ad0670ec424cf1823e4dccb6a1529]:
>  {{TNonblockingServer}}, {{THsHaServer}} and {{TThreadedSelectorServer}} now 
> clear the read interest of such a connection and restore it once memory is 
> released. A frame larger than the read buffer memory limit closes its 
> connection, as a frame over the maximum frame size does.
> Reported by Sylwester Lachiewicz.
> _Drafted with AI assistance (Claude Opus 5); reviewed and posted by Jens 
> Geyer._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to