[ 
https://issues.apache.org/jira/browse/HDFS-3616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Zhao updated HDFS-3616:
----------------------------

    Attachment: HDFS-3616.trunk.002.patch

After discussing with Nicholas, we think to avoid the 
concurrentModificationException, we only need to keep a copy of 
BlockPoolManager#offerServices before we set DataNode#shouldRun to false. In 
that case, blockPoolManager#shutDownAll() can access and shutdown all the actor 
threads thus no concurrent access of the bpSlices will happen anymore.

Uploaded a patch based on this.
                
> TestWebHdfsWithMultipleNameNodes fails with ConcurrentModificationException 
> in DN shutdown
> ------------------------------------------------------------------------------------------
>
>                 Key: HDFS-3616
>                 URL: https://issues.apache.org/jira/browse/HDFS-3616
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: data-node
>    Affects Versions: 2.0.0-alpha, 3.0.0
>            Reporter: Uma Maheswara Rao G
>            Assignee: Jing Zhao
>         Attachments: HDFS-3616.trunk.001.patch, HDFS-3616.trunk.002.patch
>
>
> I have seen this in precommit build #2743
> {noformat}
> java.util.ConcurrentModificationException
>       at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>       at java.util.HashMap$EntryIterator.next(HashMap.java:834)
>       at java.util.HashMap$EntryIterator.next(HashMap.java:832)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeImpl.shutdown(FsVolumeImpl.java:209)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeList.shutdown(FsVolumeList.java:168)
>       at 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.shutdown(FsDatasetImpl.java:1214)
>       at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.shutdown(DataNode.java:1105)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.shutdownDataNodes(MiniDFSCluster.java:1324)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.shutdown(MiniDFSCluster.java:1304)
>       at 
> org.apache.hadoop.hdfs.web.TestWebHdfsWithMultipleNameNodes.shutdownCluster(TestWebHdfsWithMultipleNameNodes.java:100)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to