[
https://issues.apache.org/jira/browse/HADOOP-6269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Todd Lipcon updated HADOOP-6269:
--------------------------------
Status: Open (was: Patch Available)
Under some more testing this patch ends up occasionally producing a deadlock:
{noformat}
Thread 30 (pool-2-thread-1):
State: BLOCKED
Blocked count: 4
Waited count: 0
Blocked on org.apache.hadoop.mapred.jobc...@30e3c624
Blocked by 1 (main)
Stack:
org.apache.hadoop.conf.Configuration.reloadConfiguration(Configuration.java:326)
<-- synch on object
org.apache.hadoop.conf.Configuration.addDefaultResource(Configuration.java:257)
<-- synch on class
org.apache.hadoop.thriftfs.ThriftPluginServer.<clinit>(ThriftPluginServer.java:64)
org.apache.hadoop.thriftfs.ThriftJobTrackerPlugin.start(ThriftJobTrackerPlugin.java:415)
org.apache.hadoop.util.PluginDispatcher$2.run(PluginDispatcher.java:104)
org.apache.hadoop.util.PluginDispatcher$2.run(PluginDispatcher.java:101)
org.apache.hadoop.util.PluginDispatcher$1.run(PluginDispatcher.java:84)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)
Thread 1 (main):
State: BLOCKED
Blocked count: 14
Waited count: 10
Blocked on java.lang.cl...@4987b287
Blocked by 30 (pool-2-thread-1)
Stack:
org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1056)
<-- synch on class
org.apache.hadoop.conf.Configuration.getProps(Configuration.java:1005) <--
synch on object
org.apache.hadoop.conf.Configuration.get(Configuration.java:382)
org.apache.hadoop.conf.Configuration.getInt(Configuration.java:451)
org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:180)
org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:168)
org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1363)
org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67)
org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1378)
org.apache.hadoop.fs.FileSystem.get(FileSystem.java:192)
org.apache.hadoop.fs.Path.getFileSystem(Path.java:175)
org.apache.hadoop.mapred.JobTracker$RecoveryManager.updateRestartCount(JobTracker.java:1166)
org.apache.hadoop.mapred.JobTracker.offerService(JobTracker.java:1822)
org.apache.hadoop.mapred.JobTracker.main(JobTracker.java:3711)
{noformat}
So please don't commit :)
I'm now doing a more thorough audit of the synchronization in Configuration so
we can hope to solve the issue completely.
> 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
>
>
> 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.