[ https://issues.apache.org/jira/browse/HADOOP-11274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arun C Murthy updated HADOOP-11274: ----------------------------------- Target Version/s: 2.7.0 (was: 2.6.0) > ConcurrentModificationException in Configuration Copy Constructor > ----------------------------------------------------------------- > > Key: HADOOP-11274 > URL: https://issues.apache.org/jira/browse/HADOOP-11274 > Project: Hadoop Common > Issue Type: Bug > Components: conf > Reporter: Junping Du > Assignee: Vinod Kumar Vavilapalli > Priority: Blocker > Attachments: HADOOP-11274-v2.patch, HADOOP-11274-v3.patch, > HADOOP-11274-v4.patch, HADOOP-11274.003.patch, HADOOP-11274.patch > > > Exception as below happens in doing some configuration update in parallel: > {noformat} > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922) > at java.util.HashMap$EntryIterator.next(HashMap.java:962) > at java.util.HashMap$EntryIterator.next(HashMap.java:960) > at java.util.HashMap.putAllForCreate(HashMap.java:554) > at java.util.HashMap.<init>(HashMap.java:298) > at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:703) > {noformat} > In a constructor of Configuration - public Configuration(Configuration > other), the copy of updatingResource data structure in copy constructor is > not synchronized properly. > Configuration.get() eventually calls loadProperty() where updatingResource > gets updated. So, whats happening here is one thread is trying to do copy of > Configuration as demonstrated in stack trace and other thread is doing > Configuration.get(key) and than ConcurrentModificationException occurs > because copying of updatingResource is not synchronized in constructor. > We should make the update to updatingResource get synchronized, and also fix > other tiny synchronized issues there. -- This message was sent by Atlassian JIRA (v6.3.4#6332)