From 431f48f65397fd32cacd8e29cf53f1ab10c01219 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Fri, 30 Oct 2015 15:31:38 +0000 Subject: [PATCH] MAPREDUCE-6528. Memory leak for HistoryFileManager.getJobSummary(). Contributed by Junping Du (cherry picked from commit 6344b6a7694c70f296392b6462dba452ff762109) --- hadoop-mapreduce-project/CHANGES.txt | 6 ++++++ .../hadoop/mapreduce/v2/hs/HistoryFileManager.java | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 17b3224c2bf..9aac41acaac 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -52,6 +52,9 @@ Release 2.7.2 - UNRELEASED avoid FileNotFoundException causing HistoryFileInfo into MOVE_FAILED state. (zhihai xu via devaraj) + MAPREDUCE-6528. Memory leak for HistoryFileManager.getJobSummary() + (Junping Du via jlowe) + Release 2.7.1 - 2015-07-06 INCOMPATIBLE CHANGES @@ -282,6 +285,9 @@ Release 2.6.3 - UNRELEASED avoid FileNotFoundException causing HistoryFileInfo into MOVE_FAILED state. (zhihai xu via devaraj) + MAPREDUCE-6528. Memory leak for HistoryFileManager.getJobSummary() + (Junping Du via jlowe) + Release 2.6.2 - 2015-10-21 INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java index 0b9eaeeffba..b539072f2eb 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryFileManager.java @@ -966,9 +966,16 @@ public class HistoryFileManager extends AbstractService { private String getJobSummary(FileContext fc, Path path) throws IOException { Path qPath = fc.makeQualified(path); - FSDataInputStream in = fc.open(qPath); - String jobSummaryString = in.readUTF(); - in.close(); + FSDataInputStream in = null; + String jobSummaryString = null; + try { + in = fc.open(qPath); + jobSummaryString = in.readUTF(); + } finally { + if (in != null) { + in.close(); + } + } return jobSummaryString; }