[
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)