[
https://issues.apache.org/jira/browse/HDFS-9054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
zhaoyunjiong updated HDFS-9054:
-------------------------------
Resolution: Won't Fix
Status: Resolved (was: Patch Available)
> Race condition on yieldCount in FSDirectory.java
> ------------------------------------------------
>
> Key: HDFS-9054
> URL: https://issues.apache.org/jira/browse/HDFS-9054
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 2.7.0
> Reporter: zhaoyunjiong
> Assignee: zhaoyunjiong
> Priority: Minor
> Attachments: HDFS-9054.patch
>
>
> getContentSummaryInt only held read lock, and it called fsd.addYieldCount
> which may cause race condition:
> {code}
> private static ContentSummary getContentSummaryInt(FSDirectory fsd,
> INodesInPath iip) throws IOException {
> fsd.readLock();
> try {
> INode targetNode = iip.getLastINode();
> if (targetNode == null) {
> throw new FileNotFoundException("File does not exist: " +
> iip.getPath());
> }
> else {
> // Make it relinquish locks everytime contentCountLimit entries are
> // processed. 0 means disabled. I.e. blocking for the entire duration.
> ContentSummaryComputationContext cscc =
> new ContentSummaryComputationContext(fsd, fsd.getFSNamesystem(),
> fsd.getContentCountLimit(), fsd.getContentSleepMicroSec());
> ContentSummary cs = targetNode.computeAndConvertContentSummary(cscc);
> fsd.addYieldCount(cscc.getYieldCount());
> return cs;
> }
> } finally {
> fsd.readUnlock();
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)