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)

Reply via email to