001    /**
002    * Licensed to the Apache Software Foundation (ASF) under one
003    * or more contributor license agreements.  See the NOTICE file
004    * distributed with this work for additional information
005    * regarding copyright ownership.  The ASF licenses this file
006    * to you under the Apache License, Version 2.0 (the
007    * "License"); you may not use this file except in compliance
008    * with the License.  You may obtain a copy of the License at
009    *
010    *     http://www.apache.org/licenses/LICENSE-2.0
011    *
012    * Unless required by applicable law or agreed to in writing, software
013    * distributed under the License is distributed on an "AS IS" BASIS,
014    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015    * See the License for the specific language governing permissions and
016    * limitations under the License.
017    */
018    
019    package org.apache.hadoop.yarn.api.records;
020    
021    import org.apache.hadoop.classification.InterfaceAudience.Public;
022    import org.apache.hadoop.classification.InterfaceStability.Unstable;
023    
024    /**
025     * Container exit statuses indicating special exit circumstances.
026     */
027    @Public
028    @Unstable
029    public class ContainerExitStatus {
030      public static final int SUCCESS = 0;
031      public static final int INVALID = -1000;
032    
033      /**
034       * Containers killed by the framework, either due to being released by
035       * the application or being 'lost' due to node failures etc.
036       */
037      public static final int ABORTED = -100;
038      
039      /**
040       * When threshold number of the nodemanager-local-directories or
041       * threshold number of the nodemanager-log-directories become bad.
042       */
043      public static final int DISKS_FAILED = -101;
044    
045      /**
046       * Containers preempted by the framework.
047       */
048      public static final int PREEMPTED = -102;
049    
050      /**
051       * Container terminated because of exceeding allocated virtual memory.
052       */
053      public static final int KILLED_EXCEEDED_VMEM = -103;
054    
055      /**
056       * Container terminated because of exceeding allocated physical memory.
057       */
058      public static final int KILLED_EXCEEDED_PMEM = -104;
059    
060      /**
061       * Container was terminated by stop request by the app master.
062       */
063      public static final int KILLED_BY_APPMASTER = -105;
064    
065      /**
066       * Container was terminated by the resource manager.
067       */
068      public static final int KILLED_BY_RESOURCEMANAGER = -106;
069    
070      /**
071       * Container was terminated after the application finished.
072       */
073      public static final int KILLED_AFTER_APP_COMPLETION = -107;
074    
075    }