SABU DANIEL created THRIFT-3673: ----------------------------------- Summary: API fails with std::exception after a timeout occured in earlier any API call Key: THRIFT-3673 URL: https://issues.apache.org/jira/browse/THRIFT-3673 Project: Thrift Issue Type: Bug Components: C++ - Library Affects Versions: 0.9.1 Environment: Windows Reporter: SABU DANIEL Priority: Critical
Any API calls( from client to server) fails with std::exception after a timeout occurred in earlier API call. Steps: 1) Call a Server API which doesn't finish within the socket read timeout 2) This call throws apache::thrift::transport::TTransportException with a TIMEOUT type (Excepted) 3) Call Another API, this fails because the earlier call response data in the socket read buffer. // Here is the part of generated code in client void ClientGeneratedClass::recv_[CURRENTAPI_NAME] { ... .. .. if (fname.compare([CURRENTAPI_NAME]) != 0) { iprot_->skip(::apache::thrift::protocol::T_STRUCT); iprot_->readMessageEnd(); iprot_->getTransport()->readEnd(); } } This iprot_->skip doesn't seems to be cleaning the read buffer correctly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)