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)

Reply via email to