[
https://issues.apache.org/jira/browse/THRIFT-3673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aki Sukegawa resolved THRIFT-3673.
----------------------------------
Resolution: Not A Bug
Assignee: Aki Sukegawa
> 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
> Assignee: Aki Sukegawa
> 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.
> Please advise any workaround or solution for this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)