Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-15467

ObserverReadProxyProvider should skip logging first failover from each proxy

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      After HADOOP-17116, RetryInvocationHandler skips logging the first failover INFO message from each proxy. But ObserverReadProxyProvider uses combinedProxy object which combines all proxies into one and assigns combinedInfo as the ProxyInfo.

      ObserverReadProxyProvider# Lines 197-207:
      
      for (int i = 0; i < nameNodeProxies.size(); i++) {
        if (i > 0) {
          combinedInfo.append(",");
        }
        combinedInfo.append(nameNodeProxies.get(i).proxyInfo);
      }
      combinedInfo.append(']');
      T wrappedProxy = (T) Proxy.newProxyInstance(
          ObserverReadInvocationHandler.class.getClassLoader(),
          new Class<?>[] {xface}, new ObserverReadInvocationHandler());
      combinedProxy = new ProxyInfo<>(wrappedProxy, combinedInfo.toString())

      RetryInvocationHandler depends on the ProxyInfo to differentiate between proxies while checking if failover from that proxy happened before. And since combined proxy has only 1 proxy, HADOOP-17116 doesn't work on {{ObserverReadProxyProvider.}}It would need to handled separately.

      Attachments

        Activity

          People

            aihuaxu Aihua Xu
            hanishakoneru Hanisha Koneru
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: