Lei (Eddy) Xu created HDFS-7917:
-----------------------------------

             Summary: Use file to replace data dirs in test to simulate a disk 
failure. 
                 Key: HDFS-7917
                 URL: https://issues.apache.org/jira/browse/HDFS-7917
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: test
    Affects Versions: 2.6.0
            Reporter: Lei (Eddy) Xu
            Assignee: Lei (Eddy) Xu
            Priority: Minor


Currently, in several tests, e.g., {{TestDataNodeVolumeFailureXXX}} and 
{{TestDataNotHowSwapVolumes}},  we simulate a disk failure by setting a 
directory's executable permission as false. However, it raises the risk that if 
the cleanup code could not be executed, the directory can not be easily removed 
by Jenkins job. 

Since in {{DiskChecker#checkDirAccess}}:

{code}
private static void checkDirAccess(File dir) throws DiskErrorException {
    if (!dir.isDirectory()) {
      throw new DiskErrorException("Not a directory: "
                                   + dir.toString());
    }

    checkAccessByFileMethods(dir);
  }
{code}

We can replace the DN data directory as a file to achieve the same fault 
injection goal, while it is safer for cleaning up in any circumstance. 
Additionally, as [~cnauroth] suggested: 

bq. That might even let us enable some of these tests that are skipped on 
Windows, because Windows allows access for the owner even after permissions 
have been stripped.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to