YARN-7124. LogAggregationTFileController deletes/renames while file is open. Contributed by Jason Lowe.

This commit is contained in:
Junping Du 2017-10-16 13:57:03 -07:00
parent a50be1b8f4
commit 1fcbe7cf5f

View File

@ -96,8 +96,10 @@ public void initializeWriter(LogAggregationFileControllerContext context)
@Override @Override
public void closeWriter() { public void closeWriter() {
this.writer.close(); if (this.writer != null) {
this.writer = null; this.writer.close();
this.writer = null;
}
} }
@Override @Override
@ -117,6 +119,9 @@ public void postWrite(final LogAggregationFileControllerContext record)
record.increcleanupOldLogTimes(); record.increcleanupOldLogTimes();
} }
// close the writer before the file is renamed or deleted
closeWriter();
final Path renamedPath = record.getRollingMonitorInterval() <= 0 final Path renamedPath = record.getRollingMonitorInterval() <= 0
? record.getRemoteNodeLogFileForApp() : new Path( ? record.getRemoteNodeLogFileForApp() : new Path(
record.getRemoteNodeLogFileForApp().getParent(), record.getRemoteNodeLogFileForApp().getParent(),