You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by de...@apache.org on 2014/05/29 09:05:26 UTC
svn commit: r1598209 - in /hadoop/common/trunk/hadoop-mapreduce-project:
CHANGES.txt
hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java
Author: devaraj
Date: Thu May 29 07:05:26 2014
New Revision: 1598209
URL: http://svn.apache.org/r1598209
Log:
MAPREDUCE-5895. Close streams properly to avoid leakage in TaskLog. Contributed by Kousuke Saruta.
Modified:
hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java
Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt?rev=1598209&r1=1598208&r2=1598209&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt Thu May 29 07:05:26 2014
@@ -244,6 +244,9 @@ Release 2.5.0 - UNRELEASED
MAPREDUCE-5862. Line records longer than 2x split size aren't handled
correctly (bc Wong via jlowe)
+ MAPREDUCE-5895. Close streams properly to avoid leakage in TaskLog.
+ (Kousuke Saruta via devaraj)
+
Release 2.4.1 - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java?rev=1598209&r1=1598208&r2=1598209&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java Thu May 29 07:05:26 2014
@@ -199,16 +199,18 @@ public class TaskLog {
// file first and then rename.
File tmpIndexFile = getTmpIndexFile(currentTaskid, isCleanup);
- BufferedOutputStream bos =
- new BufferedOutputStream(
- SecureIOUtils.createForWrite(tmpIndexFile, 0644));
- DataOutputStream dos = new DataOutputStream(bos);
- //the format of the index file is
- //LOG_DIR: <the dir where the task logs are really stored>
- //STDOUT: <start-offset in the stdout file> <length>
- //STDERR: <start-offset in the stderr file> <length>
- //SYSLOG: <start-offset in the syslog file> <length>
+ BufferedOutputStream bos = null;
+ DataOutputStream dos = null;
try{
+ bos = new BufferedOutputStream(
+ SecureIOUtils.createForWrite(tmpIndexFile, 0644));
+ dos = new DataOutputStream(bos);
+ //the format of the index file is
+ //LOG_DIR: <the dir where the task logs are really stored>
+ //STDOUT: <start-offset in the stdout file> <length>
+ //STDERR: <start-offset in the stderr file> <length>
+ //SYSLOG: <start-offset in the syslog file> <length>
+
dos.writeBytes(LogFileDetail.LOCATION + logLocation + "\n"
+ LogName.STDOUT.toString() + ":");
dos.writeBytes(Long.toString(prevOutLength) + " ");
@@ -225,8 +227,10 @@ public class TaskLog {
+ "\n");
dos.close();
dos = null;
+ bos.close();
+ bos = null;
} finally {
- IOUtils.cleanup(LOG, dos);
+ IOUtils.cleanup(LOG, dos, bos);
}
File indexFile = getIndexFile(currentTaskid, isCleanup);