Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.14.1
-
None
-
None
-
Windows 2010, Visual Studio 2017, CMake 3.15.2
Description
I have been trying to upgrade our application from Thrift 0.11.0 to 0.14.1 and have noticed what I think is a bug.
Our thrift application uses a TFramedTransport to transmit large quantities of data from the client to the server using a oneway call. The transports are all created using the (new) default TConfiguration class giving a maximum message size of 100MB.
Our application sends data through the thrift library in circa 10MB blocks using a oneway call. On the 10th call the server terminates with a TTransportException thrown on line 329 of TTransport.h.
I believe this is happening because the TFramedTransport doesn't reset the 'knownMessageSize_' and 'remainingMessageSize_' counters when a message transfer is completed. This means that the counter continually reduces until the exception is thrown. I am new to the thrift library and so perhaps I have this wrong but it's what looks like is happening to me.
I can make the library work by adding resetConsumedMessageSize(); inside TFramedTransport::readEnd() in file TBufferTransports.cpp (at line 310). Is this the correct solution?
Attachments
Issue Links
- relates to
-
THRIFT-5402 MaxMessageSize reached exception thrown in TEndpointTransport
- Open