From 6344b6a7694c70f296392b6462dba452ff762109 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 --- 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 22f9e89584..32be987ad7 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -671,6 +671,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 @@ -904,6 +907,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 f0786da3fd..b221961c10 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 @@ private void moveToDoneNow(final Path src, final Path target) 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; }