Sfoglia il codice sorgente

HDDS-421. Resilient DNS resolution in datanode-service. Contributed by Elek, Marton.

Márton Elek 6 anni fa
parent
commit
317f317d4b

+ 10 - 0
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/datanode/InitDatanodeState.java

@@ -92,6 +92,16 @@ public class InitDatanodeState implements DatanodeState,
       LOG.error("Null or empty SCM address list found.");
       return DatanodeStateMachine.DatanodeStates.SHUTDOWN;
     } else {
+      for (InetSocketAddress addr : addresses) {
+        if (addr.isUnresolved()) {
+          LOG.warn("One SCM address ({}) can't (yet?) be resolved. Postpone "
+              + "initialization.", addr);
+
+          //skip any further initialization. DatanodeStateMachine will try it
+          // again after the hb frequency
+          return this.context.getState();
+        }
+      }
       for (InetSocketAddress addr : addresses) {
         connectionManager.addSCMServer(addr);
       }