You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by su...@apache.org on 2013/04/17 20:14:16 UTC
svn commit: r1469018 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
Author: suresh
Date: Wed Apr 17 18:14:16 2013
New Revision: 1469018
URL: http://svn.apache.org/r1469018
Log:
HDFS-4695. Merge 1469015 from trunk
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1469018&r1=1469017&r2=1469018&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Apr 17 18:14:16 2013
@@ -155,6 +155,9 @@ Release 2.0.5-beta - UNRELEASED
HDFS-4639. startFileInternal() should not increment generation stamp.
(Plamen Jeliazkov via shv)
+ HDFS-4695. TestEditLog leaks open file handles between tests.
+ (Ivan Mitic via suresh)
+
Release 2.0.4-alpha - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java?rev=1469018&r1=1469017&r2=1469018&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java Wed Apr 17 18:14:16 2013
@@ -67,6 +67,7 @@ import org.apache.hadoop.hdfs.server.com
import org.apache.hadoop.hdfs.server.namenode.NNStorage.NameNodeDirType;
import org.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics;
import org.apache.hadoop.hdfs.server.protocol.NamespaceInfo;
+import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.util.Time;
@@ -627,6 +628,7 @@ public class TestEditLog {
// Now restore the backup
FileUtil.fullyDeleteContents(dfsDir);
+ dfsDir.delete();
backupDir.renameTo(dfsDir);
// Directory layout looks like:
@@ -753,19 +755,24 @@ public class TestEditLog {
File log = new File(currentDir,
NNStorage.getInProgressEditsFileName(3));
- new EditLogFileOutputStream(log, 1024).create();
- if (!inBothDirs) {
- break;
- }
-
- NNStorage storage = new NNStorage(conf,
- Collections.<URI>emptyList(),
- Lists.newArrayList(uri));
-
- if (updateTransactionIdFile) {
- storage.writeTransactionIdFileToStorage(3);
+ EditLogFileOutputStream stream = new EditLogFileOutputStream(log, 1024);
+ try {
+ stream.create();
+ if (!inBothDirs) {
+ break;
+ }
+
+ NNStorage storage = new NNStorage(conf,
+ Collections.<URI>emptyList(),
+ Lists.newArrayList(uri));
+
+ if (updateTransactionIdFile) {
+ storage.writeTransactionIdFileToStorage(3);
+ }
+ storage.close();
+ } finally {
+ stream.close();
}
- storage.close();
}
try {
@@ -1327,12 +1334,15 @@ public class TestEditLog {
FSEditLog editlog = getFSEditLog(storage);
editlog.initJournalsForWrite();
long startTxId = 1;
+ Collection<EditLogInputStream> streams = null;
try {
- readAllEdits(editlog.selectInputStreams(startTxId, 4*TXNS_PER_ROLL),
- startTxId);
+ streams = editlog.selectInputStreams(startTxId, 4*TXNS_PER_ROLL);
+ readAllEdits(streams, startTxId);
} catch (IOException e) {
LOG.error("edit log failover didn't work", e);
fail("Edit log failover didn't work");
+ } finally {
+ IOUtils.cleanup(null, streams.toArray(new EditLogInputStream[0]));
}
}
@@ -1373,12 +1383,15 @@ public class TestEditLog {
FSEditLog editlog = getFSEditLog(storage);
editlog.initJournalsForWrite();
long startTxId = 1;
+ Collection<EditLogInputStream> streams = null;
try {
- readAllEdits(editlog.selectInputStreams(startTxId, 4*TXNS_PER_ROLL),
- startTxId);
+ streams = editlog.selectInputStreams(startTxId, 4*TXNS_PER_ROLL);
+ readAllEdits(streams, startTxId);
} catch (IOException e) {
LOG.error("edit log failover didn't work", e);
fail("Edit log failover didn't work");
+ } finally {
+ IOUtils.cleanup(null, streams.toArray(new EditLogInputStream[0]));
}
}