[ https://issues.apache.org/jira/browse/THRIFT-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17761344#comment-17761344 ]
Yuxuan Wang commented on THRIFT-5732: ------------------------------------- See the TConfiguration design doc: https://github.com/apache/thrift/blob/master/doc/specs/thrift-tconfiguration.md, it should be set from TConfiguration's MaxFrameSize. To provide some context/reference, when I implemented TConfiguration in go, I made it that every layer of protocol/transport will propagate TConfiguration to the next layer automatically, so user can create a single TConfiguration to be used across the whole stack. See https://pkg.go.dev/github.com/apache/thrift/lib/go/thrift#TConfiguration and https://pkg.go.dev/github.com/apache/thrift/lib/go/thrift#PropagateTConfiguration > Java - TFramedTransport won't allow max frame size larger than default max > message size > --------------------------------------------------------------------------------------- > > Key: THRIFT-5732 > URL: https://issues.apache.org/jira/browse/THRIFT-5732 > Project: Thrift > Issue Type: Bug > Components: Java - Library > Affects Versions: 0.14.0 > Reporter: Christopher Tubbs > Priority: Major > > The constructor for the TFramedTransport.Factory allows directly specifying > the max frame size. However, if the max frame size provided is larger than > the default max message size, then the internal checks for the max message > size will trigger a failure, even if the message is smaller than the max > frame size that was specified. > For reference, the default max frame size is 16MB, and the default max > message size is 100MB. So, if you pass in a max frame size of 200MB to the > factory, and then send a message of size 101MB, this will trigger the error. > A proposed solution would be to have the TFramedTransport.Factory set the > maximum message size at the same time it sets the max frame size on the > underlying TConfiguration. I was thinking the max message size could be set > to the same as the provided max frame size. However, I'm not exactly sure how > the frame header size comes into play here, so maybe the max message size > should be slightly larger to account for the frame header size bytes? So > maybe the max message size should be set to either the larger of: the current > value in TConfiguration, the default max message size, and the max frame size > +4 bytes for the frame header? (and being careful not to exceed > {{Integer.MAX_VALUE}}). > This bug was introduced in 0.14.0 with THRIFT-5237's Java implementation. > See also the issue reported in Apache Accumulo at > https://github.com/apache/accumulo/issues/3731 and proposed workarounds on > https://github.com/apache/accumulo/issues/3737 -- This message was sent by Atlassian Jira (v8.20.10#820010)