You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2017/07/06 15:21:35 UTC
hadoop git commit: HADOOP-14499. Findbugs warning in
LocalMetadataStore. Contributed by Sean Mackrory.
Repository: hadoop
Updated Branches:
refs/heads/HADOOP-13345 cf36cbd35 -> 309b8c0f8
HADOOP-14499. Findbugs warning in LocalMetadataStore.
Contributed by Sean Mackrory.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/309b8c0f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/309b8c0f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/309b8c0f
Branch: refs/heads/HADOOP-13345
Commit: 309b8c0f834a740999c37925d53a44be1aa640c1
Parents: cf36cbd
Author: Steve Loughran <st...@apache.org>
Authored: Thu Jul 6 16:20:55 2017 +0100
Committer: Steve Loughran <st...@apache.org>
Committed: Thu Jul 6 16:20:55 2017 +0100
----------------------------------------------------------------------
.../fs/s3a/s3guard/LocalMetadataStore.java | 12 ++++----
.../fs/s3a/s3guard/MetadataStoreTestBase.java | 29 ++++++++++++++++++++
2 files changed, 36 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/309b8c0f/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/LocalMetadataStore.java
----------------------------------------------------------------------
diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/LocalMetadataStore.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/LocalMetadataStore.java
index d7e256d..b3c7de5 100644
--- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/LocalMetadataStore.java
+++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/s3guard/LocalMetadataStore.java
@@ -297,7 +297,6 @@ public class LocalMetadataStore implements MetadataStore {
}
Iterator<Map.Entry<Path, DirListingMetadata>> dirs =
dirHash.entrySet().iterator();
- Collection<Path> ancestors = new LinkedList<>();
while (dirs.hasNext()) {
Map.Entry<Path, DirListingMetadata> entry = dirs.next();
Path path = entry.getKey();
@@ -311,11 +310,14 @@ public class LocalMetadataStore implements MetadataStore {
newChildren.add(child);
}
}
- if (newChildren.size() == 0) {
- dirs.remove();
- ancestors.add(entry.getKey());
- } else {
+ if (newChildren.size() != oldChildren.size()) {
dirHash.put(path, new DirListingMetadata(path, newChildren, false));
+ if (!path.isRoot()) {
+ DirListingMetadata parent = dirHash.get(path.getParent());
+ if (parent != null) {
+ parent.setAuthoritative(false);
+ }
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/309b8c0f/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/s3guard/MetadataStoreTestBase.java
----------------------------------------------------------------------
diff --git a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/s3guard/MetadataStoreTestBase.java b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/s3guard/MetadataStoreTestBase.java
index dfa8a9e..72cc512 100644
--- a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/s3guard/MetadataStoreTestBase.java
+++ b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/s3guard/MetadataStoreTestBase.java
@@ -688,6 +688,35 @@ public abstract class MetadataStoreTestBase extends Assert {
assertDeleted("/pruneDirs/dir/file");
}
+ @Test
+ public void testPruneUnsetsAuthoritative() throws Exception {
+ String rootDir = "/unpruned-root-dir";
+ String grandparentDir = rootDir + "/pruned-grandparent-dir";
+ String parentDir = grandparentDir + "/pruned-parent-dir";
+ String staleFile = parentDir + "/stale-file";
+ String freshFile = rootDir + "/fresh-file";
+ String[] directories = {rootDir, grandparentDir, parentDir};
+
+ createNewDirs(rootDir, grandparentDir, parentDir);
+ long time = System.currentTimeMillis();
+ ms.put(new PathMetadata(
+ new FileStatus(0, false, 0, 0, time - 1, strToPath(staleFile)),
+ Tristate.FALSE, false));
+ ms.put(new PathMetadata(
+ new FileStatus(0, false, 0, 0, time + 1, strToPath(freshFile)),
+ Tristate.FALSE, false));
+
+ ms.prune(time);
+ DirListingMetadata listing;
+ for (String directory : directories) {
+ Path path = strToPath(directory);
+ if (ms.get(path) != null) {
+ listing = ms.listChildren(path);
+ assertFalse(listing.isAuthoritative());
+ }
+ }
+ }
+
/*
* Helper functions.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org