HDFS-8607. TestFileCorruption doesn't work as expected. (Contributed by Walter Su)

This commit is contained in:
Arpit Agarwal 2015-06-15 10:11:53 -07:00
parent 4c5da9bd94
commit 32ffda1266
2 changed files with 14 additions and 8 deletions

View File

@ -889,6 +889,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8593. Calculation of effective layout version mishandles comparison to
current layout version in storage. (cnauroth)
HDFS-8607. TestFileCorruption doesn't work as expected. (Walter Su via
Arpit Agarwal)
Release 2.7.1 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -27,8 +27,12 @@
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.PrefixFileFilter;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.ChecksumException;
import org.apache.hadoop.fs.FileSystem;
@ -74,14 +78,13 @@ public void testFileCorruption() throws Exception {
String bpid = cluster.getNamesystem().getBlockPoolId();
File data_dir = MiniDFSCluster.getFinalizedDir(storageDir, bpid);
assertTrue("data directory does not exist", data_dir.exists());
File[] blocks = data_dir.listFiles();
assertTrue("Blocks do not exist in data-dir", (blocks != null) && (blocks.length > 0));
for (int idx = 0; idx < blocks.length; idx++) {
if (!blocks[idx].getName().startsWith(Block.BLOCK_FILE_PREFIX)) {
continue;
}
System.out.println("Deliberately removing file "+blocks[idx].getName());
assertTrue("Cannot remove file.", blocks[idx].delete());
Collection<File> blocks = FileUtils.listFiles(data_dir,
new PrefixFileFilter(Block.BLOCK_FILE_PREFIX),
DirectoryFileFilter.DIRECTORY);
assertTrue("Blocks do not exist in data-dir", blocks.size() > 0);
for (File block : blocks) {
System.out.println("Deliberately removing file " + block.getName());
assertTrue("Cannot remove file.", block.delete());
}
assertTrue("Corrupted replicas not handled properly.",
util.checkFiles(fs, "/srcdat"));