You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by sa...@apache.org on 2020/07/22 13:00:12 UTC
[hadoop-ozone] 02/39: HDDS-3921. IllegalArgumentException triggered in SCMContainerPlacemen… (#1162)
This is an automated email from the ASF dual-hosted git repository.
sammichen pushed a commit to branch ozone-0.6.0
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
commit 4aa6087050c6d3324f7808098d3e15c6acac46e9
Author: Sammi Chen <sa...@apache.org>
AuthorDate: Mon Jul 13 14:38:34 2020 +0800
HDDS-3921. IllegalArgumentException triggered in SCMContainerPlacemen… (#1162)
(cherry picked from commit 59771684d25f3f75ce4d97bc877335e9e5897e03)
---
.../apache/hadoop/hdds/scm/container/ReplicationManager.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ReplicationManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ReplicationManager.java
index 617e231..7a25068 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ReplicationManager.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ReplicationManager.java
@@ -512,7 +512,7 @@ public class ReplicationManager
*/
private void handleUnderReplicatedContainer(final ContainerInfo container,
final Set<ContainerReplica> replicas) {
- LOG.debug("Handling underreplicated container: {}",
+ LOG.debug("Handling under-replicated container: {}",
container.getContainerID());
try {
final ContainerID id = container.containerID();
@@ -543,14 +543,18 @@ public class ReplicationManager
List<DatanodeDetails> targetReplicas = new ArrayList<>(source);
// Then add any pending additions
targetReplicas.addAll(replicationInFlight);
-
- int delta = replicationFactor - getReplicaCount(id, replicas);
final ContainerPlacementStatus placementStatus =
containerPlacement.validateContainerPlacement(
targetReplicas, replicationFactor);
+ int delta = replicationFactor - getReplicaCount(id, replicas);
final int misRepDelta = placementStatus.misReplicationCount();
final int replicasNeeded
= delta < misRepDelta ? misRepDelta : delta;
+ if (replicasNeeded <= 0) {
+ LOG.debug("Container {} meets replication requirement with " +
+ "inflight replicas", id);
+ return;
+ }
final List<DatanodeDetails> excludeList = replicas.stream()
.map(ContainerReplica::getDatanodeDetails)
@@ -611,7 +615,7 @@ public class ReplicationManager
final ContainerID id = container.containerID();
final int replicationFactor = container.getReplicationFactor().getNumber();
- // Dont consider inflight replication while calculating excess here.
+ // Don't consider inflight replication while calculating excess here.
int excess = replicas.size() - replicationFactor -
inflightDeletion.getOrDefault(id, Collections.emptyList()).size();
---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-commits-help@hadoop.apache.org