diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java index 065854e..ba8c59f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/AppLogAggregatorImpl.java @@ -351,10 +351,8 @@ private void uploadLogsForContainers(boolean appFinished) { cleanupOldLogTimes++; } - if (writer != null) { - writer.close(); - writer = null; - } + writer.close(); + writer = null; long currentTime = System.currentTimeMillis(); final Path renamedPath = this.rollingMonitorInterval <= 0 @@ -413,7 +411,14 @@ public Object run() throws Exception { } if (writer != null) { - writer.close(); + try { + writer.close(); + } catch (IllegalStateException e) { + // If an exception occurs when the writer is not ready or closed, + // writer.close() throws IllegalStateException. We need to catch this + // to throw the original exception instead of IllegalStateException. + LOG.warn("Exception occurred when closing writer", e); + } } } }