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

(cherry picked from commit 1fcbe7cf5f)
This commit is contained in:
Junping Du 2017-10-16 13:57:03 -07:00
parent 0bddcf10ef
commit 3d2ef54450
1 changed files with 7 additions and 2 deletions

View File

@ -96,9 +96,11 @@ public class LogAggregationTFileController
@Override
public void closeWriter() {
if (this.writer != null) {
this.writer.close();
this.writer = null;
}
}
@Override
public void write(LogKey logKey, LogValue logValue) throws IOException {
@ -117,6 +119,9 @@ public class LogAggregationTFileController
record.increcleanupOldLogTimes();
}
// close the writer before the file is renamed or deleted
closeWriter();
final Path renamedPath = record.getRollingMonitorInterval() <= 0
? record.getRemoteNodeLogFileForApp() : new Path(
record.getRemoteNodeLogFileForApp().getParent(),