HDFS-6238. TestDirectoryScanner leaks file descriptors. Contributed by Chris Nauroth.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1587148 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7aed74b3d0
commit
8a9eff3919
|
@ -341,6 +341,8 @@ Release 2.5.0 - UNRELEASED
|
|||
HDFS-6237. TestDFSShell#testGet fails on Windows due to invalid file system
|
||||
path. (cnauroth)
|
||||
|
||||
HDFS-6238. TestDirectoryScanner leaks file descriptors. (cnauroth)
|
||||
|
||||
Release 2.4.1 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -46,6 +46,7 @@ import org.apache.hadoop.hdfs.server.common.GenerationStamp;
|
|||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsDatasetSpi;
|
||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi;
|
||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetTestUtil;
|
||||
import org.apache.hadoop.io.IOUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
|
@ -85,11 +86,17 @@ public class TestDirectoryScanner {
|
|||
File mf = b.getMetaFile();
|
||||
// Truncate a block file that has a corresponding metadata file
|
||||
if (f.exists() && f.length() != 0 && mf.exists()) {
|
||||
FileOutputStream s = new FileOutputStream(f);
|
||||
FileChannel channel = s.getChannel();
|
||||
channel.truncate(0);
|
||||
LOG.info("Truncated block file " + f.getAbsolutePath());
|
||||
return b.getBlockId();
|
||||
FileOutputStream s = null;
|
||||
FileChannel channel = null;
|
||||
try {
|
||||
s = new FileOutputStream(f);
|
||||
channel = s.getChannel();
|
||||
channel.truncate(0);
|
||||
LOG.info("Truncated block file " + f.getAbsolutePath());
|
||||
return b.getBlockId();
|
||||
} finally {
|
||||
IOUtils.cleanup(LOG, channel, s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue