Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java (revision 1520477) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java (working copy) @@ -53,6 +53,7 @@ import org.apache.hadoop.fs.Options; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.io.SecureIOUtils; import org.apache.hadoop.io.Writable; import org.apache.hadoop.io.file.tfile.TFile; @@ -570,8 +571,7 @@ } public void close() throws IOException { - this.scanner.close(); - this.fsDataIStream.close(); + IOUtils.cleanup(LOG, scanner,reader,fsDataIStream); } } Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java (revision 1520477) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java (working copy) @@ -105,6 +105,7 @@ } catch (IOException e) { html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); + closeReader(reader); return; } @@ -116,6 +117,7 @@ } catch (IOException e) { html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); + closeReader(reader); return; } ApplicationACLsManager aclsManager = new ApplicationACLsManager(conf); @@ -132,6 +134,7 @@ html.h1() ._("User [" + remoteUser + "] is not authorized to view the logs for " + logEntity)._(); + closeReader(reader); return; } @@ -162,6 +165,8 @@ html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); return; + } finally { + closeReader(reader); } } @@ -317,4 +322,14 @@ limits.end = end; return limits; } + + private void closeReader(AggregatedLogFormat.LogReader reader) { + if (null != reader) { + try { + reader.close(); + } catch (IOException e) { + LOG.warn("Exception while closing reader.", e); + } + } + } } \ No newline at end of file