From fc6d3a3b234efff2b0b646c31a4e6ff0a5118ef9 Mon Sep 17 00:00:00 2001 From: Junping Du Date: Fri, 15 Jan 2016 08:40:56 -0800 Subject: [PATCH] YARN-4581. AHS writer thread leak makes RM crash while RM is recovering. Contributed by sandflee. --- hadoop-yarn-project/CHANGES.txt | 9 +++++++++ .../FileSystemApplicationHistoryStore.java | 17 +++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 0af77152972..9dbed10a661 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1259,6 +1259,9 @@ Release 2.8.0 - UNRELEASED failure-threshold" should be app specific rather than a setting for whole YARN cluster. (Sunil G via rohithsharmaks) + YARN-4581. AHS writer thread leak makes RM crash while RM is recovering. + (sandflee via junping_du) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES @@ -1323,6 +1326,9 @@ Release 2.7.3 - UNRELEASED YARN-4414. Nodemanager connection errors are retried at multiple levels (Chang Li via jlowe) + YARN-4581. AHS writer thread leak makes RM crash while RM is recovering. + (sandflee via junping_du) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES @@ -2209,6 +2215,9 @@ Release 2.6.4 - UNRELEASED YARN-4414. Nodemanager connection errors are retried at multiple levels (Chang Li via jlowe) + YARN-4581. AHS writer thread leak makes RM crash while RM is recovering. + (sandflee via junping_du) + Release 2.6.3 - 2015-12-17 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/FileSystemApplicationHistoryStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/FileSystemApplicationHistoryStore.java index 6d76864b07f..c340b190252 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/FileSystemApplicationHistoryStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/FileSystemApplicationHistoryStore.java @@ -734,12 +734,17 @@ public class FileSystemApplicationHistoryStore extends AbstractService } else { fsdos = fs.create(historyFile); } - fs.setPermission(historyFile, HISTORY_FILE_UMASK); - writer = - new TFile.Writer(fsdos, MIN_BLOCK_SIZE, getConfig().get( - YarnConfiguration.FS_APPLICATION_HISTORY_STORE_COMPRESSION_TYPE, - YarnConfiguration.DEFAULT_FS_APPLICATION_HISTORY_STORE_COMPRESSION_TYPE), null, - getConfig()); + try { + fs.setPermission(historyFile, HISTORY_FILE_UMASK); + writer = + new TFile.Writer(fsdos, MIN_BLOCK_SIZE, getConfig().get( + YarnConfiguration.FS_APPLICATION_HISTORY_STORE_COMPRESSION_TYPE, + YarnConfiguration.DEFAULT_FS_APPLICATION_HISTORY_STORE_COMPRESSION_TYPE), null, + getConfig()); + } catch (IOException e) { + IOUtils.cleanup(LOG, fsdos); + throw e; + } } public synchronized void close() {