From f3b9f5e3d0a2c69e6f867b2a59867b08c3593d10 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Fri, 30 Oct 2015 15:34:14 +0000 Subject: [PATCH] MAPREDUCE-6528. Memory leak for HistoryFileManager.getJobSummary(). Contributed by Junping Du (cherry picked from commit 6344b6a7694c70f296392b6462dba452ff762109) Conflicts: hadoop-mapreduce-project/CHANGES.txt --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../hadoop/mapreduce/v2/hs/HistoryFileManager.java | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index ce1e065089a..d02c85741b7 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -16,6 +16,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 d0e171e5567..84f28baf2ee 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 @@ -953,9 +953,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; }