YARN-8183. Fix ConcurrentModificationException inside RMAppAttemptMetrics#convertAtomicLongMaptoLongMap. (Suma Shivaprasad via wangda)

Change-Id: I347871d672001653a3afe2e99adefd74e0d798cd
(cherry picked from commit bb3c504764f807fccba7f28298a12e2296f284cb)
(cherry picked from commit 3043a93d461fd8b9ccc2ff4b8d17e5430ed77615)
This commit is contained in:
Wangda Tan 2018-04-24 17:42:17 -07:00 committed by Jonathan Hung
parent 1875231be5
commit 6f4ebe01b7

View File

@ -20,6 +20,7 @@
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 void updatePreemptionInfo(Resource resource, RMContainer container) {
public Resource getResourcePreempted() {
try {
readLock.lock();
return resourcePreempted;
return Resource.newInstance(resourcePreempted);
} finally {
readLock.unlock();
}
@ -229,7 +230,7 @@ public int getTotalAllocatedContainers() {
}
public Resource getApplicationAttemptHeadroom() {
return applicationHeadroom;
return Resource.newInstance(applicationHeadroom);
}
public void setApplicationAttemptHeadRoom(Resource headRoom) {