Wilfred Spiegelenburg created YARN-2910:
-------------------------------------------
Summary: FSLeafQueue can throw ConcurrentModificationException
Key: YARN-2910
URL: https://issues.apache.org/jira/browse/YARN-2910
Project: Hadoop YARN
Issue Type: Bug
Components: fairscheduler
Affects Versions: 2.5.0
Reporter: Wilfred Spiegelenburg
The list that maintains the runnable and the non runnable apps are a standard
ArrayList but there is no guarantee that it will only be manipulated by one
thread in the system. This can lead to the following exception:
2014-11-12 02:29:01,169 ERROR [RMCommunicator Allocator]
org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: ERROR IN CONTACTING
RM.
java.util.ConcurrentModificationException:
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSLeafQueue.getResourceUsage(FSLeafQueue.java:147)
at
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSAppAttempt.getHeadroom(FSAppAttempt.java:180)
at
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.allocate(FairScheduler.java:923)
at
org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:516)
Full stack trace in the attached file.
We should guard against that by using a thread safe version from
java.util.concurrent.CopyOnWriteArrayList
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)