Repository: incubator-slider
Updated Branches:
  refs/heads/develop 8267370dc -> 851f513fa


SLIDER-1183 Slider AM should not kill application if onError is called


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/851f513f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/851f513f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/851f513f

Branch: refs/heads/develop
Commit: 851f513fa5a001fcbeedde571dd65189cdef34ed
Parents: 8267370
Author: Billie Rinaldi <bil...@apache.org>
Authored: Fri Feb 3 12:42:37 2017 -0800
Committer: Billie Rinaldi <bil...@apache.org>
Committed: Fri Feb 3 12:42:37 2017 -0800

----------------------------------------------------------------------
 .../server/appmaster/SliderAppMaster.java       | 21 +++++++++++++++-----
 .../server/appmaster/actions/ActionHalt.java    |  6 ++++++
 2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/851f513f/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index 1337ec5..55431fc 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -131,6 +131,7 @@ import org.apache.slider.providers.agent.AgentKeys;
 import org.apache.slider.providers.agent.AgentProviderService;
 import org.apache.slider.providers.slideram.SliderAMClientProvider;
 import org.apache.slider.providers.slideram.SliderAMProviderService;
+import org.apache.slider.server.appmaster.actions.ActionHalt;
 import 
org.apache.slider.server.appmaster.actions.ActionRegisterServiceInstance;
 import org.apache.slider.server.appmaster.actions.EscalateOutstandingRequests;
 import org.apache.slider.server.appmaster.actions.RegisterComponentInstance;
@@ -2061,11 +2062,21 @@ public class SliderAppMaster extends 
AbstractSliderLaunchedService
 
   @Override //AMRMClientAsync
   public void onError(Throwable e) {
-    // callback says it's time to finish
-    LOG_YARN.error("AMRMClientAsync.onError() received {}", e, e);
-    signalAMComplete(new ActionStopSlider("stop", EXIT_EXCEPTION_THROWN,
-        FinalApplicationStatus.FAILED,
-        SliderUtils.extractFirstLine(e.getLocalizedMessage())));
+    if (e instanceof InvalidResourceRequestException) {
+      // stop the cluster
+      LOG_YARN.error("AMRMClientAsync.onError() received {}", e, e);
+      signalAMComplete(new ActionStopSlider("stop", EXIT_EXCEPTION_THROWN,
+          FinalApplicationStatus.FAILED,
+          SliderUtils.extractFirstLine(e.getLocalizedMessage())));
+    } else if (e instanceof InvalidApplicationMasterRequestException) {
+      // halt the AM
+      LOG_YARN.error("AMRMClientAsync.onError() received {}", e, e);
+      queue(new ActionHalt(EXIT_EXCEPTION_THROWN,
+          SliderUtils.extractFirstLine(e.getLocalizedMessage())));
+    } else {
+      // ignore and log
+      LOG_YARN.info("Ignoring AMRMClientAsync.onError() received {}", e);
+    }
   }
 
 /* =================================================================== */

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/851f513f/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/ActionHalt.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/ActionHalt.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/ActionHalt.java
index e2ad559..ee1bb72 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/ActionHalt.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/ActionHalt.java
@@ -35,6 +35,12 @@ public class ActionHalt extends AsyncAction {
 
   public ActionHalt(
       int status,
+      String text) {
+    this(status, text, 0, TimeUnit.MILLISECONDS);
+  }
+
+  public ActionHalt(
+      int status,
       String text,
       long delay, TimeUnit timeUnit) {
     

Reply via email to