[ 
https://issues.apache.org/jira/browse/THRIFT-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13878067#comment-13878067
 ] 

Hudson commented on THRIFT-2108:
--------------------------------

SUCCESS: Integrated in Thrift #1011 (See 
[https://builds.apache.org/job/Thrift/1011/])
THRIFT-2108 java: Fix TAsyncClientManager timeout race (roger: rev 
194f0114c27f6a41c96be6d5702895bf5c1519e3)
* lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java


> 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
>            Assignee: Roger Meier
>         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 was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to