Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-9786

RetryInvocationHandler#isRpcInvocation should support ProtocolTranslator

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0-alpha1
    • Fix Version/s: 2.1.0-beta
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      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.

        Attachments

        1. HADOOP-9786.001.patch
          2 kB
          Jing Zhao
        2. HADOOP-9786.002.patch
          6 kB
          Jing Zhao
        3. HADOOP-9786.003.patch
          6 kB
          Jing Zhao
        4. HADOOP-9786.4.patch
          5 kB
          Suresh Srinivas
        5. HADOOP-9786.5.patch
          5 kB
          Suresh Srinivas
        6. HADOOP-9786.6.patch
          5 kB
          Jing Zhao
        7. HADOOP-9786.7.patch
          5 kB
          Jing Zhao

          Issue Links

            Activity

              People

              • Assignee:
                jingzhao Jing Zhao
                Reporter:
                jingzhao Jing Zhao
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: