[
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