Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
the code in createDirIfNotExists:
private void createDirIfNotExists(Path path) throws IOException { FileSystem fileSystem = path.getFileSystem(conf); try { if (!fileSystem.exists(path)) { fileSystem.mkdirs(path); fileSystem.setPermission(path, DIR_PERMISSION); } } catch (IOException e) { // Ignore this exception, if there is a problem it'll fail when trying to read or write. LOG.warn("Error while trying to set permission: ", e); } }
but if the node crash between mkdirs and setPermission, the permisson will not be set forever even reboot.
So how about change the code like
private void createDirIfNotExists(Path path) throws IOException { FileSystem fileSystem = path.getFileSystem(conf); try { if (!fileSystem.exists(path)) { fileSystem.mkdirs(path); } fileSystem.setPermission(path, DIR_PERMISSION); } catch (IOException e) { // Ignore this exception, if there is a problem it'll fail when trying to read or write. LOG.warn("Error while trying to set permission: ", e); } }