[ 
https://issues.apache.org/jira/browse/HADOOP-9786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HADOOP-9786:
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.0-beta
           Status: Resolved  (was: Patch Available)

Thanks for the review and comments! I've committed this to trunk, branch-2 and 
2.1-beta.
                
> RetryInvocationHandler#isRpcInvocation should support ProtocolTranslator 
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-9786
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9786
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 3.0.0
>            Reporter: Jing Zhao
>            Assignee: Jing Zhao
>             Fix For: 2.1.0-beta
>
>         Attachments: HADOOP-9786.001.patch, HADOOP-9786.002.patch, 
> HADOOP-9786.003.patch, HADOOP-9786.4.patch, HADOOP-9786.5.patch, 
> HADOOP-9786.6.patch, HADOOP-9786.7.patch
>
>
> Currently the RetryInvocationHandler uses the same RPC ids (i.e., clientId + 
> callId) only when the invocation is a RPC invocation. To check whether an 
> invocation is RPC, RetryInvocationHandler#isRpcInvocation directly apply 
> Proxy#isProxyClass on RetryInvocation#currentProxy. However, if currentProxy 
> is an instance of ProtocolTranslator (e.g., 
> ClientNamenodeProtocolTranslatorPB), the real dynamically-generated proxy 
> object is contained within currentProxy and needs to be retrieved by calling 
> ProtocolTranslator#getUnderlyingProxyObject. Failing to recognize a RPC 
> invocation can cause a retry request to have different "clientId + callId" 
> with its initial call, and fail to hit the corresponding retry cache entry in 
> the NameNode side.

--
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

Reply via email to