From 1dbaf7498560a0278766bf5d0978564aa8e741ac Mon Sep 17 00:00:00 2001 From: Inigo Goiri Date: Tue, 2 Jul 2019 13:22:30 -0700 Subject: [PATCH] HADOOP-16385. Namenode crashes with 'RedundancyMonitor thread received Runtime exception'. Contributed by Ayush Saxena. (cherry picked from commit aa9f0850e85203b2ce4f4a8dc8968e9186cdc67a) --- .../main/java/org/apache/hadoop/net/NetworkTopology.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java index f7f60ecc0a6..8933b078cd8 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java @@ -569,10 +569,11 @@ public class NetworkTopology { private Node chooseRandom(final InnerNode parentNode, final Node excludedScopeNode, final Collection excludedNodes, final int totalInScopeNodes, final int availableNodes) { - Preconditions.checkArgument( - totalInScopeNodes >= availableNodes && availableNodes > 0, String - .format("%d should >= %d, and both should be positive.", - totalInScopeNodes, availableNodes)); + if (totalInScopeNodes < availableNodes) { + LOG.warn("Total Nodes in scope : {} are less than Available Nodes : {}", + totalInScopeNodes, availableNodes); + return null; + } if (excludedNodes == null || excludedNodes.isEmpty()) { // if there are no excludedNodes, randomly choose a node final int index = r.nextInt(totalInScopeNodes);