[
https://issues.apache.org/jira/browse/HDFS-12336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16142620#comment-16142620
]
Xiao Chen commented on HDFS-12336:
----------------------------------
Thanks for the new patch Wellington, looks pretty good to me. I think we're
really close.
Comments, mostly nits:
- I think we should pass in {{zonePath}}, instead of {{inode.getFullPathName}}
to {{isValidAbsolutePath}}. The latter is more expensive, and later
{{getINodesInPath}} is resolving the former.
- Nit: I think we can leave out the outer () in {{return (path != null &&
path.startsWith(Path.SEPARATOR));}}
- Nit: Test could use {{assertNotEquals}} instead of
{{assertFalse(x.equals(y))}}.
- Please fix checkstyle while you're at it. (I can't explain why, but we really
love the '.' at the end of the first sentence)
> Listing encryption zones still fails when deleted EZ is not a direct child of
> snapshottable directory
> -----------------------------------------------------------------------------------------------------
>
> Key: HDFS-12336
> URL: https://issues.apache.org/jira/browse/HDFS-12336
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs
> Affects Versions: 3.0.0-alpha4
> Reporter: Wellington Chevreuil
> Assignee: Wellington Chevreuil
> Priority: Minor
> Attachments: HDFS-12336.001.patch, HDFS-12336.002.patch,
> HDFS-12336.003.patch
>
>
> The fix proposed on HDFS-11197 didn't cover the scenario where the EZ deleted
> but still under a snapshot is not a direct child of the snapshottable
> directory.
> Here the code snippet proposed on HDFS-11197 that would avoid the error
> reported by *hdfs crypto -listZones* when a deleted EZ is still under a given
> snapshot:
> {noformat}
> INode lastINode = null;
> if (inode.getParent() != null || inode.isRoot()) {
> INodesInPath iip = dir.getINodesInPath(pathName, DirOp.READ_LINK);
> lastINode = iip.getLastINode();
> }
> if (lastINode == null || lastINode.getId() != ezi.getINodeId()) {
> continue;
> }
> {noformat}
> It will ignore EZs when it's a direct child of a snapshot, because its parent
> inode will be null, and it isn't the root inode. However, if the EZ is not
> directly under snapshottable directory, its parent will not be null, and it
> will pass this check, so it will fail further due *absolute path required*
> validation error.
> I would like to work on a fix that would also cover this scenario.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]