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 1518895) +++ 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 1518895) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java (working copy) @@ -106,6 +106,8 @@ html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); return; + } finally { + closeReader(reader); } String owner = null; @@ -117,6 +119,8 @@ html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); return; + } finally { + closeReader(reader); } ApplicationACLsManager aclsManager = new ApplicationACLsManager(conf); aclsManager.addApplication(applicationId, appAcls); @@ -132,6 +136,7 @@ html.h1() ._("User [" + remoteUser + "] is not authorized to view the logs for " + logEntity)._(); + closeReader(reader); return; } @@ -162,6 +167,8 @@ html.h1()._("Error getting logs for " + logEntity)._(); LOG.error("Error getting logs for " + logEntity, e); return; + } finally{ + closeReader(reader); } } @@ -317,4 +324,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