[
https://issues.apache.org/jira/browse/HDFS-12201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Manoj Govindassamy updated HDFS-12201:
--------------------------------------
Attachment: HDFS-12201.test.01.patch
> INode#getSnapshotINode() should get INodeAttributes from
> INodeAttributesProvider for the current INode
> ------------------------------------------------------------------------------------------------------
>
> Key: HDFS-12201
> URL: https://issues.apache.org/jira/browse/HDFS-12201
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 2.8.0
> Reporter: Manoj Govindassamy
> Assignee: Manoj Govindassamy
> Attachments: HDFS-12201.test.01.patch
>
>
> Problem: When an external INodeAttributesProvider is enabled, SnapshotDiff is
> not detecting changes in files when the external ACL/XAttr attributes change.
> {{FileWithSnapshotFeature#changedBetweenSnapshots()}} when trying to detect
> changes in snapshots for the given file, does meta data comparison which
> takes in the attributes retrieved from {{INode#getSnapshotINode()}}
> {{INodeFile}}
> {noformat}
> @Override
> public INodeFileAttributes getSnapshotINode(final int snapshotId) {
> FileWithSnapshotFeature sf = this.getFileWithSnapshotFeature();
> if (sf != null) {
> return sf.getDiffs().getSnapshotINode(snapshotId, this);
> } else {
> return this;
> }
> }
> {noformat}
> {{AbstractINodeDiffList#getSnapshotINode}}
> {noformat}
> public A getSnapshotINode(final int snapshotId, final A currentINode) {
> final D diff = getDiffById(snapshotId);
> final A inode = diff == null? null: diff.getSnapshotINode();
> return inode == null? currentINode: inode;
> }
> {noformat}
> But, INodeFile, INodeDirectory #getSnapshotINode() returns the current
> INode's local INodeAttributes if there is anything available for the given
> snapshot id. When there is an INodeAttributesProvider configured, attributes
> provided by the external provider could be different from the local. But,
> getSnapshotINode() always returns the local attributes without retrieving
> them from attributes provider.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]