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

Tsz Wo (Nicholas), SZE resolved HADOOP-4972.
--------------------------------------------

    Resolution: Invalid

Your are right.  All of them are synchronized.  I also checked 0.18.

> FSNamesystem.countNodes(Block b) should be synchronized.
> --------------------------------------------------------
>
>                 Key: HADOOP-4972
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4972
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: dfs
>            Reporter: Tsz Wo (Nicholas), SZE
>
> (Copied a 
> [comment|https://issues.apache.org/jira/browse/HADOOP-4840?focusedCommentId=12657242#action_12657242]
>  from HADOOP-4840.)
> FSNamesystem.countNodes(..) is called in many places including:
>     * FSNamesystem.addStoredBlock(Block, DatanodeDescriptor, 
> DatanodeDescriptor)
>     * FSNamesystem.checkReplicationFactor(INodeFile)
>     * FSNamesystem.decrementSafeBlockCount(Block)
>     * FSNamesystem.getBlockLocationsInternal(String, INodeFile, long, long, 
> int, boolean)
>     * FSNamesystem.invalidateBlock(Block, DatanodeInfo)
>     * FSNamesystem.isReplicationInProgress(DatanodeDescriptor)
>     * FSNamesystem.markBlockAsCorrupt(Block, DatanodeInfo)
>     * FSNamesystem.processMisReplicatedBlocks()
>     * FSNamesystem.processPendingReplications()
>     * FSNamesystem.updateNeededReplications(Block, int, int)
> However, some of them, e.g. getBlockLocationsInternal, call countNodes(..) 
> without owning the fsnamesystem lock before calling . It may causes NPE in 
> runtime.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to