[ https://issues.apache.org/jira/browse/THRIFT-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vadim Spivak updated THRIFT-2108: --------------------------------- Attachment: thrift-2108-fix-timeout-race.patch > Fix TAsyncClientManager timeout race > ------------------------------------ > > Key: THRIFT-2108 > URL: https://issues.apache.org/jira/browse/THRIFT-2108 > Project: Thrift > Issue Type: Bug > Components: Java - Library > Affects Versions: 0.9 > Reporter: Vadim Spivak > Attachments: thrift-2108-fix-timeout-race.patch > > > TAsyncClientManager uses a TreeSet(timeoutWatchSet) for managing timeouts > with a comparator based on the timeout timestamp. However, this timestamp can > be mutated externally by changing the client timeout before > TAsyncClientManager tries to remove (and fails) the TAsyncMethodCall from the > timeout set. > Failing to delete the TAsyncMethodCall from the timeoutWatchSet will break > some timeouts and cause some callbacks to fire twice, once with onComplete > and a second time with onError. > The common use case when this happens is if you want to issue a new request > with a different timeout to the same client inside an onComplete callback. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira