This is an automated email from the ASF dual-hosted git repository.
sammichen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 5977168 HDDS-3921. IllegalArgumentException triggered in
SCMContainerPlacemen… (#1162)
5977168 is described below
commit 59771684d25f3f75ce4d97bc877335e9e5897e03
Author: Sammi Chen <[email protected]>
AuthorDate: Mon Jul 13 14:38:34 2020 +0800
HDDS-3921. IllegalArgumentException triggered in SCMContainerPlacemen…
(#1162)
---
.../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: [email protected]
For additional commands, e-mail: [email protected]