Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
If there is an IO Error on any log operations the directory should be removed from the list of active storage directories.
when it happens function FSEditLog:processIOError() is called.
in this function:
....
File parentStorageDir = ((EditLogFileOutputStream)editStreams.get(index)).getFile().getParentFile().getParentFile(); – which returns root
....
fsimage.processIOErrors(parentStorageDir);
...
which calles FSImage:ProcessIOErrors(dir).
but when dir is compared against list of storage dirs getParent is used instead of getPath()
so the match is never found.
....
if (sd.getRoot().getPath().equals(dirName.getParent())) { - should be dirName.getPath()
.....