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

Todd Lipcon commented on HADOOP-7717:
-------------------------------------

I think there's a race here around the use of the atomic integer. If one thread 
increments the integer and is about to call performFailover, then gets switched 
out, another thread can run, decide another failover has occurred, and then get 
the old proxy object (ie not failover).

Instead I think you should use a regular int, then synchronize around both the 
check, the failover, and the resulting failoverCount++
                
> Move handling of concurrent client fail-overs to RetryInvocationHandler
> -----------------------------------------------------------------------
>
>                 Key: HADOOP-7717
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7717
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: ipc
>    Affects Versions: 0.24.0
>            Reporter: Aaron T. Myers
>            Assignee: Aaron T. Myers
>             Fix For: 0.24.0
>
>         Attachments: HADOOP-7717.patch
>
>
> Currently every implementation of a {{FailoverProxyProvider}} will need to 
> perform its own synchronization to ensure that multiple concurrent failed 
> calls to a single client proxy object don't result in multiple client fail 
> over events. It would be better to put this logic in 
> {{RetryInvocationHandler.invoke}}.
> This is based on feedback provided by Todd in [this 
> comment|https://issues.apache.org/jira/browse/HDFS-1973?focusedCommentId=13119567&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13119567].

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to