Jens Geyer created THRIFT-6354:
----------------------------------
Summary: 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
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)