[ 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