[ https://issues.apache.org/jira/browse/HADOOP-9786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tsz Wo (Nicholas), SZE updated HADOOP-9786: ------------------------------------------- Hadoop Flags: Reviewed +1 HADOOP-9786.7.patch looks good. > 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 > 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