You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by jh...@apache.org on 2019/09/09 07:33:53 UTC

[hadoop] branch branch-3.1 updated: YARN-9820. RM logs InvalidStateTransitionException when app is submitted. Contributed by Prabhu Joseph

This is an automated email from the ASF dual-hosted git repository.

jhung 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 0e88bcd  YARN-9820. RM logs InvalidStateTransitionException when app is submitted. Contributed by Prabhu Joseph
0e88bcd is described below

commit 0e88bcd8e6b43ed2b3ed2f1e4e68193562eb3b38
Author: Jonathan Hung <jh...@linkedin.com>
AuthorDate: Mon Sep 9 00:23:04 2019 -0700

    YARN-9820. RM logs InvalidStateTransitionException when app is submitted. Contributed by Prabhu Joseph
---
 .../hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java  | 7 +++++++
 .../server/resourcemanager/recovery/RMStateUpdateAppEvent.java     | 7 ++++++-
 .../apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java | 2 +-
 .../yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java    | 7 ++++++-
 4 files changed, 20 insertions(+), 3 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/recovery/RMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
index 0fc98df..161e317 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java
@@ -852,6 +852,13 @@ public abstract class RMStateStore extends AbstractService {
     getRMStateStoreEventHandler().handle(new RMStateUpdateAppEvent(appState));
   }
 
+  @SuppressWarnings("unchecked")
+  public void updateApplicationState(ApplicationStateData appState,
+      boolean notifyApp) {
+    getRMStateStoreEventHandler().handle(new RMStateUpdateAppEvent(appState,
+        notifyApp));
+  }
+
   public void updateApplicationStateSynchronously(ApplicationStateData appState,
       boolean notifyApp, SettableFuture<Object> resultFuture) {
     handleStoreEvent(
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateUpdateAppEvent.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateUpdateAppEvent.java
index 0a6220b..a43d43e 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateUpdateAppEvent.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateUpdateAppEvent.java
@@ -30,9 +30,14 @@ public class RMStateUpdateAppEvent extends RMStateStoreEvent {
   private SettableFuture<Object> future;
 
   public RMStateUpdateAppEvent(ApplicationStateData appState) {
+    this (appState, true);
+  }
+
+  public RMStateUpdateAppEvent(ApplicationStateData appState,
+      boolean notifyApplication) {
     super(RMStateStoreEventType.UPDATE_APP);
     this.appState = appState;
-    this.notifyApplication = true;
+    this.notifyApplication = notifyApplication;
     this.future = null;
   }
 
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/RMAppImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
index 71d0e80..e725322 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
@@ -1036,7 +1036,7 @@ public class RMAppImpl implements RMApp, Recoverable {
             app.callerContext);
         appState.setApplicationTimeouts(app.getApplicationTimeouts());
         appState.setLaunchTime(event.getTimestamp());
-        app.rmContext.getStateStore().updateApplicationState(appState);
+        app.rmContext.getStateStore().updateApplicationState(appState, false);
         app.launchTime = event.getTimestamp();
       }
     }
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 f5dcefb..b32ad1e 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
@@ -19,6 +19,7 @@
 package org.apache.hadoop.yarn.server.resourcemanager.rmapp;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.eq;
@@ -472,8 +473,12 @@ public class TestRMAppTransitions {
   private void assertAppStateLaunchTimeSaved(long expectedLaunchTime) {
     ArgumentCaptor<ApplicationStateData> state =
         ArgumentCaptor.forClass(ApplicationStateData.class);
-    verify(store, times(1)).updateApplicationState(state.capture());
+    ArgumentCaptor<Boolean> notifyApp =
+        ArgumentCaptor.forClass(Boolean.class);
+    verify(store, times(1)).updateApplicationState(state.capture(),
+        notifyApp.capture());
     assertEquals(expectedLaunchTime, state.getValue().getLaunchTime());
+    assertFalse(notifyApp.getValue());
   }
 
   private void assertKilled(RMApp application) {


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