hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bibinchund...@apache.org
Subject [hadoop] branch branch-3.1 updated: YARN-8132. Final Status of applications shown as UNDEFINED in ATS app queries. Contributed by Prabhu Joseph
Date Fri, 22 Feb 2019 15:23:01 GMT
This is an automated email from the ASF dual-hosted git repository.

bibinchundatt pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new 7db50ff  YARN-8132. Final Status of applications shown as UNDEFINED in ATS app queries.
Contributed by Prabhu Joseph
7db50ff is described below

commit 7db50ffcebf5413bbd1a80ee2cd8e2ffc11befe1
Author: bibinchundatt <bibinchundatt@apache.org>
AuthorDate: Fri Feb 22 20:05:29 2019 +0530

    YARN-8132. Final Status of applications shown as UNDEFINED in ATS app queries. Contributed
by Prabhu Joseph
---
 .../rmapp/attempt/RMAppAttemptImpl.java            | 12 +++---
 .../rmapp/TestRMAppTransitions.java                | 43 +++++++++++++---------
 .../rmapp/attempt/TestRMAppAttemptTransitions.java |  3 +-
 3 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java
index 03039da..7b04ae7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/RMAppAttemptImpl.java
@@ -1372,7 +1372,7 @@ public class RMAppAttemptImpl implements RMAppAttempt, Recoverable {
       setTrackingUrlToRMAppPage(stateToBeStored);
     }
     String finalTrackingUrl = getOriginalTrackingUrl();
-    FinalApplicationStatus finalStatus = null;
+    FinalApplicationStatus status = null;
     int exitStatus = ContainerExitStatus.INVALID;
     switch (event.getType()) {
     case LAUNCH_FAILED:
@@ -1387,7 +1387,7 @@ public class RMAppAttemptImpl implements RMAppAttempt, Recoverable {
       diags.append(unregisterEvent.getDiagnosticMsg());
       // reset finalTrackingUrl to url sent by am
       finalTrackingUrl = sanitizeTrackingUrl(unregisterEvent.getFinalTrackingUrl());
-      finalStatus = unregisterEvent.getFinalApplicationStatus();
+      status = unregisterEvent.getFinalApplicationStatus();
       break;
     case CONTAINER_FINISHED:
       RMAppAttemptContainerFinishedEvent finishEvent =
@@ -1396,8 +1396,10 @@ public class RMAppAttemptImpl implements RMAppAttempt, Recoverable
{
       exitStatus = finishEvent.getContainerStatus().getExitStatus();
       break;
     case KILL:
+      status = FinalApplicationStatus.KILLED;
       break;
     case FAIL:
+      status = FinalApplicationStatus.FAILED;
       diags.append(event.getDiagnosticMsg());
       break;
     case EXPIRE:
@@ -1414,13 +1416,14 @@ public class RMAppAttemptImpl implements RMAppAttempt, Recoverable
{
     ApplicationAttemptStateData attemptState = ApplicationAttemptStateData
         .newInstance(applicationAttemptId, getMasterContainer(),
             rmStore.getCredentialsFromAppAttempt(this), startTime,
-            stateToBeStored, finalTrackingUrl, diags.toString(), finalStatus, exitStatus,
-            getFinishTime(), resUsage.getResourceUsageSecondsMap(),
+            stateToBeStored, finalTrackingUrl, diags.toString(), status,
+            exitStatus, getFinishTime(), resUsage.getResourceUsageSecondsMap(),
             this.attemptMetrics.getPreemptedResourceSecondsMap());
     LOG.info("Updating application attempt " + applicationAttemptId
         + " with final state: " + targetedFinalState + ", and exit status: "
         + exitStatus);
     rmStore.updateApplicationAttemptState(attemptState);
+    finalStatus = status;
   }
 
   private static class FinalSavingTransition extends BaseTransition {
@@ -1916,7 +1919,6 @@ public class RMAppAttemptImpl implements RMAppAttempt, Recoverable {
         (RMAppAttemptUnregistrationEvent) event;
     this.diagnostics.append(unregisterEvent.getDiagnosticMsg());
     originalTrackingUrl = sanitizeTrackingUrl(unregisterEvent.getFinalTrackingUrl());
-    finalStatus = unregisterEvent.getFinalApplicationStatus();
   }
 
   private static final class ContainerFinishedTransition
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
index 70887e0..1cd22e8 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
@@ -694,7 +694,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
     assertAppFinalStateNotSaved(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
@@ -713,7 +713,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertFailed(application, rejectedText);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
 
@@ -731,7 +731,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertFailed(application, rejectedText);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
     rmContext.getStateStore().removeApplication(application);
   }
@@ -753,7 +753,7 @@ public class TestRMAppTransitions {
     rmDispatcher.await();
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
@@ -772,7 +772,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertFailed(application, rejectedText);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
 
@@ -789,7 +789,7 @@ public class TestRMAppTransitions {
     assertFailed(application, rejectedText);
     verify(store, times(0)).updateApplicationState(
         any(ApplicationStateData.class));
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     assertTimesAtFinish(application);
   }
 
@@ -807,7 +807,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertFailed(application, rejectedText);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
 
@@ -829,7 +829,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
@@ -866,7 +866,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertFailed(application, ".*" + message + ".*Failing the application.*");
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
   }
 
   @Test
@@ -893,7 +893,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
@@ -917,7 +917,7 @@ public class TestRMAppTransitions {
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
   }
 
@@ -941,7 +941,7 @@ public class TestRMAppTransitions {
     sendAttemptUpdateSavedEvent(application);
     sendAppUpdateSavedEvent(application);
     assertKilled(application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
     verifyAppRemovedSchedulerEvent(RMAppState.KILLED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
@@ -1000,7 +1000,7 @@ public class TestRMAppTransitions {
     rmDispatcher.await();
     assertFailed(application, ".*Failing the application.*");
     assertAppFinalStateSaved(application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
 
@@ -1062,7 +1062,9 @@ public class TestRMAppTransitions {
     StringBuilder diag = application.getDiagnostics();
     Assert.assertEquals("application diagnostics is not correct",
         "", diag.toString());
-    verifyApplicationFinished(RMAppState.FINISHED);
+    // finished without a proper final state is the same as failed
+    verifyApplicationFinished(RMAppState.FINISHED,
+        FinalApplicationStatus.FAILED);
     verifyRMAppFieldsForFinalTransitions(application);
   }
 
@@ -1089,7 +1091,7 @@ public class TestRMAppTransitions {
     rmDispatcher.await();
     assertTimesAtFinish(application);
     assertAppState(RMAppState.FAILED, application);
-    verifyApplicationFinished(RMAppState.FAILED);
+    verifyApplicationFinished(RMAppState.FAILED, FinalApplicationStatus.FAILED);
 
     assertTimesAtFinish(application);
     assertAppState(RMAppState.FAILED, application);
@@ -1144,7 +1146,7 @@ public class TestRMAppTransitions {
     rmDispatcher.await();
     assertTimesAtFinish(application);
     assertAppState(RMAppState.KILLED, application);
-    verifyApplicationFinished(RMAppState.KILLED);
+    verifyApplicationFinished(RMAppState.KILLED, FinalApplicationStatus.KILLED);
 
     assertTimesAtFinish(application);
     assertAppState(RMAppState.KILLED, application);
@@ -1257,15 +1259,20 @@ public class TestRMAppTransitions {
             + "/"));
   }
 
-  private void verifyApplicationFinished(RMAppState state) {
+  private void verifyApplicationFinished(RMAppState state,
+      FinalApplicationStatus finalAppStatus) {
     ArgumentCaptor<RMAppState> finalState =
         ArgumentCaptor.forClass(RMAppState.class);
     verify(writer).applicationFinished(any(RMApp.class), finalState.capture());
     Assert.assertEquals(state, finalState.getValue());
     finalState = ArgumentCaptor.forClass(RMAppState.class);
-    verify(publisher).appFinished(any(RMApp.class), finalState.capture(),
+    ArgumentCaptor<RMApp> app =
+        ArgumentCaptor.forClass(RMApp.class);
+    verify(publisher).appFinished(app.capture(), finalState.capture(),
         anyLong());
     Assert.assertEquals(state, finalState.getValue());
+    Assert.assertEquals(finalAppStatus,
+        app.getValue().getFinalApplicationStatus());
   }
   
   private void verifyAppRemovedSchedulerEvent(RMAppState finalState) {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java
index f5f8b76..1d5eb54 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java
@@ -442,7 +442,8 @@ public class TestRMAppAttemptTransitions {
     assertEquals(amContainer, applicationAttempt.getMasterContainer());
     assertEquals(0.0, (double)applicationAttempt.getProgress(), 0.0001);
     assertEquals(0, application.getRanNodes().size());
-    assertNull(applicationAttempt.getFinalApplicationStatus());
+    assertEquals(FinalApplicationStatus.KILLED,
+        applicationAttempt.getFinalApplicationStatus());
     verifyTokenCount(applicationAttempt.getAppAttemptId(), 1);
     verifyAttemptFinalStateSaved();
     assertFalse(transferStateFromPreviousAttempt);


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org


Mime
View raw message