Eric Payne created YARN-2024:
--------------------------------
Summary: IOException in AppLogAggregatorImpl does not give
stacktrace and leaves aggregated TFile in a bad state.
Key: YARN-2024
URL: https://issues.apache.org/jira/browse/YARN-2024
Project: Hadoop YARN
Issue Type: Bug
Affects Versions: 2.4.0, 0.23.10
Reporter: Eric Payne
Multiple issues were encountered when AppLogAggregatorImpl encountered an
IOException in AppLogAggregatorImpl#uploadLogsForContainer while aggregating
yarn-logs for an application that had very large (>150G each) error logs.
- An IOException was encountered during the LogWriter#append call, and a
message was printed, but no stacktrace was provided. Message: "ERROR: Couldn't
upload logs for container_nnnnnnnnnnnnn_nnnnnnn_nn_nnnnnn. Skipping this
container."
- After the IOExceptin, the TFile is in a bad state, so subsequent calls to
LogWriter#append fail with the following stacktrace:
2014-04-16 13:29:09,772 [LogAggregationService #17907] ERROR
org.apache.hadoop.yarn.YarnUncaughtExceptionHandler: Thread
Thread[LogAggregationService #17907,5,main] threw an Exception.
java.lang.IllegalStateException: Incorrect state to start a new key: IN_VALUE
at
org.apache.hadoop.io.file.tfile.TFile$Writer.prepareAppendKey(TFile.java:528)
at
org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogWriter.append(AggregatedLogFormat.java:262)
at
org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AppLogAggregatorImpl.uploadLogsForContainer(AppLogAggregatorImpl.java:128)
at
org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AppLogAggregatorImpl.doAppLogAggregation(AppLogAggregatorImpl.java:164)
...
- At this point, the yarn-logs cleaner still thinks the thread is aggregating,
so the huge yarn-logs never get cleaned up for that application.
--
This message was sent by Atlassian JIRA
(v6.2#6252)