Repository: hadoop Updated Branches: refs/heads/branch-2 0dd686114 -> 5b7799154 refs/heads/branch-3.0 d2655ea60 -> fc6d851f7 refs/heads/branch-3.1 2aa385463 -> 9dc180d14 refs/heads/trunk 7ad27e97f -> 646874c32
HADOOP-15748. S3 listing inconsistency can raise NPE in globber. Contributed by Steve Loughran. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/646874c3 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/646874c3 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/646874c3 Branch: refs/heads/trunk Commit: 646874c326139457b79cf8cfa547b3c91a78c7b4 Parents: 7ad27e9 Author: Steve Loughran <ste...@apache.org> Authored: Thu Sep 20 13:04:52 2018 +0100 Committer: Steve Loughran <ste...@apache.org> Committed: Thu Sep 20 13:04:52 2018 +0100 ---------------------------------------------------------------------- .../src/main/java/org/apache/hadoop/fs/Globber.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/646874c3/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Globber.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Globber.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Globber.java index ca3db1d..b241a94 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Globber.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/Globber.java @@ -245,7 +245,18 @@ class Globber { // incorrectly conclude that /a/b was a file and should not match // /a/*/*. So we use getFileStatus of the path we just listed to // disambiguate. - if (!getFileStatus(candidate.getPath()).isDirectory()) { + Path path = candidate.getPath(); + FileStatus status = getFileStatus(path); + if (status == null) { + // null means the file was not found + LOG.warn("File/directory {} not found:" + + " it may have been deleted." + + " If this is an object store, this can be a sign of" + + " eventual consistency problems.", + path); + continue; + } + if (!status.isDirectory()) { continue; } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org