Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Reviewed
Description
need translate java.nio.file.NoSuchFileException to FileNotFoundException to avoid regression.
HADOOP-12045 adds nio to support access time, but nio will create java.nio.file.NoSuchFileException instead of FileNotFoundException.
many hadoop codes depend on FileNotFoundException to decide whether a file exists. for example FileContext.util().exists().
public boolean exists(final Path f) throws AccessControlException, UnsupportedFileSystemException, IOException { try { FileStatus fs = FileContext.this.getFileStatus(f); assert fs != null; return true; } catch (FileNotFoundException e) { return false; } }
same for FileSystem#exists
public boolean exists(Path f) throws IOException { try { return getFileStatus(f) != null; } catch (FileNotFoundException e) { return false; } }
NoSuchFileException will break these functions.
Since exists is one of the most used API in FileSystem, this issue is very critical.
Several test failures for TestDeletionService are caused by this issue:
https://builds.apache.org/job/PreCommit-YARN-Build/8630/testReport/org.apache.hadoop.yarn.server.nodemanager/TestDeletionService/testRelativeDelete/
https://builds.apache.org/job/PreCommit-YARN-Build/8632/testReport/org.apache.hadoop.yarn.server.nodemanager/TestDeletionService/testAbsDelete/
Attachments
Attachments
Issue Links
- is duplicated by
-
YARN-4010 TestDeletionService.testAbsDelete is failing
-
- Resolved
-
- relates to
-
HADOOP-12045 Enable LocalFileSystem#setTimes to change atime
-
- Resolved
-