[ https://issues.apache.org/jira/browse/HADOOP-6269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Todd Lipcon updated HADOOP-6269: -------------------------------- Attachment: hadoop-6269.txt OK. Here's the summary of a correct (I believe) fix: - To avoid deadlock we need a lock ordering - We'll order instance locks before class locks (ie you must never lock an instance when holding a class lock) The issue is that addDefaultResource is currently static synchronized and locks a class instance by calling conf.reloadConfiguration (synchronized non-static) Attaching a patch which breaks this synchronization by holding the lock only long enough to make a defensive copy of the shared list. I don't think this is a performance issue since addDefaultResource is called very rarely. Tests pass. Will test on the application that keeps turning up this bug here. Review would be appreciated. > Missing synchronization for defaultResources in Configuration.addResource > ------------------------------------------------------------------------- > > Key: HADOOP-6269 > URL: https://issues.apache.org/jira/browse/HADOOP-6269 > Project: Hadoop Common > Issue Type: Bug > Components: conf > Affects Versions: 0.20.1 > Reporter: Todd Lipcon > Assignee: Todd Lipcon > Fix For: 0.20.2, 0.21.0 > > Attachments: hadoop-6269.txt, hadoop-6269.txt > > > Configuration.defaultResources is a simple ArrayList. In two places in > Configuration it is accessed without appropriate synchronization, which we've > seen to occasionally result in ConcurrentModificationExceptions. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.