Jens-G opened a new pull request, #3845:
URL: https://github.com/apache/thrift/pull/3845

   `thrift.server.nonblocking.TNonblockingServer` defaulted `maxFrameSize` to 
`DEFAULT_MAX_FRAME_SIZE = 256 * 1024 * 1024`, while the rest of `lib/d` uses 
`16384000` — the frame size limit shared across the Thrift libraries 
(`DEFAULT_FRAME_SIZE_LIMIT` in `thrift.transport.framed`, and the container and 
string size limits of the binary, compact and JSON protocols).
   
   So the D servers disagreed with each other: `TSimpleServer`, 
`TThreadedServer` and `TTaskPoolServer` with a `TFramedTransportFactory` refuse 
a request frame over 16,384,000 bytes (and a D client refuses a response frame 
over that too), while `TNonblockingServer` accepted one of up to 268,435,456 
bytes. THRIFT-6183 made the same change to the C++ `TNonblockingServer`.
   
   This sets `DEFAULT_MAX_FRAME_SIZE` to `16384000`. A `maxFrameSize` assigned 
by the caller still takes precedence.
   
   ### Compatibility (breaking)
   
   This lowers a shipped, public default. A deployment that exchanges frames 
between 16,384,001 and 268,435,456 bytes with `TNonblockingServer` and does not 
set `maxFrameSize` will start having those connections closed; set 
`maxFrameSize` to `256 * 1024 * 1024` to restore the previous behaviour. Unlike 
`frameSizeLimit` on `TFramedTransport`, a `maxFrameSize` of zero does not 
switch the check off. A release note is added to `lib/d/README.md`.
   
   ### Test
   
   A new unittest in `nonblocking.d` spins up a live server and asserts the 
default value, that a 16,384,001-byte frame header closes the connection, and 
that a caller-raised `maxFrameSize` gets the larger frame read and answered.
   
   ---
   Prepared with AI assistance (Claude Opus 5).
   


-- 
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]

Reply via email to