[
https://issues.apache.org/jira/browse/HDFS-6870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yi Liu updated HDFS-6870:
-------------------------
Description:
Following code in FSDirectory#unprotectedRenameTo doesn't collect blocks and
INodes for non snapshot path.
{code}
if (removedDst != null) {
undoRemoveDst = false;
if (removedNum > 0) {
BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo();
List<INode> removedINodes = new ChunkedArrayList<INode>();
filesDeleted = removedDst.cleanSubtree(Snapshot.CURRENT_STATE_ID,
dstIIP.getLatestSnapshotId(), collectedBlocks, removedINodes,
true).get(Quota.NAMESPACE);
getFSNamesystem().removePathAndBlocks(src, collectedBlocks,
removedINodes, false);
}
}
{code}
was:
Following code in FSDirectory#unprotectedRenameTo doesn't collect blocks and
INodes for non snapshot path.
{code}
if (removedDst != null) {
undoRemoveDst = false;
if (removedNum > 0) {
BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo();
List<INode> removedINodes = new ChunkedArrayList<INode>();
filesDeleted = removedDst.cleanSubtree(Snapshot.CURRENT_STATE_ID,
dstIIP.getLatestSnapshotId(), collectedBlocks, removedINodes,
true).get(Quota.NAMESPACE);
getFSNamesystem().removePathAndBlocks(src, collectedBlocks,
removedINodes, false);
}
}
{code}
> Blocks and INodes could leak for Rename with overwrite flag
> -----------------------------------------------------------
>
> Key: HDFS-6870
> URL: https://issues.apache.org/jira/browse/HDFS-6870
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: Yi Liu
> Assignee: Yi Liu
>
> Following code in FSDirectory#unprotectedRenameTo doesn't collect blocks and
> INodes for non snapshot path.
> {code}
> if (removedDst != null) {
> undoRemoveDst = false;
> if (removedNum > 0) {
> BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo();
> List<INode> removedINodes = new ChunkedArrayList<INode>();
> filesDeleted = removedDst.cleanSubtree(Snapshot.CURRENT_STATE_ID,
> dstIIP.getLatestSnapshotId(), collectedBlocks, removedINodes,
> true).get(Quota.NAMESPACE);
> getFSNamesystem().removePathAndBlocks(src, collectedBlocks,
> removedINodes, false);
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)