This is an automated email from the ASF dual-hosted git repository. jhung pushed a commit to branch YARN-8200 in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit bdc79e4bef254bd5471be2a63f0021ebe7ffc68d Author: Wangda Tan <[email protected]> AuthorDate: Tue Apr 24 17:42:17 2018 -0700 YARN-8183. Fix ConcurrentModificationException inside RMAppAttemptMetrics#convertAtomicLongMaptoLongMap. (Suma Shivaprasad via wangda) Change-Id: I347871d672001653a3afe2e99adefd74e0d798cd (cherry picked from commit bb3c504764f807fccba7f28298a12e2296f284cb) (cherry picked from commit 3043a93d461fd8b9ccc2ff4b8d17e5430ed77615) --- .../resourcemanager/rmapp/attempt/RMAppAttemptMetrics.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptMetrics.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptMetrics.java index 0982ef9..e68c5d7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptMetrics.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptMetrics.java @@ -20,6 +20,7 @@ package org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -53,8 +54,8 @@ public class RMAppAttemptMetrics { private ReadLock readLock; private WriteLock writeLock; - private Map<String, AtomicLong> resourceUsageMap = new HashMap<>(); - private Map<String, AtomicLong> preemptedResourceMap = new HashMap<>(); + private Map<String, AtomicLong> resourceUsageMap = new ConcurrentHashMap<>(); + private Map<String, AtomicLong> preemptedResourceMap = new ConcurrentHashMap<>(); private RMContext rmContext; private int[][] localityStatistics = @@ -97,7 +98,7 @@ public class RMAppAttemptMetrics { public Resource getResourcePreempted() { try { readLock.lock(); - return resourcePreempted; + return Resource.newInstance(resourcePreempted); } finally { readLock.unlock(); } @@ -229,7 +230,7 @@ public class RMAppAttemptMetrics { } public Resource getApplicationAttemptHeadroom() { - return applicationHeadroom; + return Resource.newInstance(applicationHeadroom); } public void setApplicationAttemptHeadRoom(Resource headRoom) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
