[
https://issues.apache.org/jira/browse/HDFS-1257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13084413#comment-13084413
]
Tsz Wo (Nicholas), SZE commented on HDFS-1257:
----------------------------------------------
Hi Eric, thanks for working on this. Some comments on the patch.
- belongsToInvalidates(..) is not synchronized.
- In dumpRecentInvalidateSets(..), recentInvalidateSets.values().size() is not
synchronized.
- In invalidateWorkForOneNode(..), recentInvalidateSets.get(nodeId) is not
synchronized.
- Please use junit 4 in the test (i.e. org.junit.* instead of
junit.framework.*).
- Suggestion: how about move recentInvalidateSets and the related method to a
standalone class?
> Race condition on FSNamesystem#recentInvalidateSets introduced by HADOOP-5124
> -----------------------------------------------------------------------------
>
> Key: HDFS-1257
> URL: https://issues.apache.org/jira/browse/HDFS-1257
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: name-node
> Affects Versions: 0.23.0
> Reporter: Ramkumar Vadali
> Assignee: Eric Payne
> Fix For: 0.23.0
>
> Attachments: HDFS-1257.1.20110810.patch, HDFS-1257.2.20110812.patch,
> HDFS-1257.patch
>
>
> HADOOP-5124 provided some improvements to FSNamesystem#recentInvalidateSets.
> But it introduced unprotected access to the data structure
> recentInvalidateSets. Specifically, FSNamesystem.computeInvalidateWork
> accesses recentInvalidateSets without read-lock protection. If there is
> concurrent activity (like reducing replication on a file) that adds to
> recentInvalidateSets, the name-node crashes with a
> ConcurrentModificationException.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira