Repository: reef Updated Branches: refs/heads/master 66d3d6963 -> 07e654977
[REEF-1454] onResourceLaunch should not throw exception if evaluator failed Evaluator can fail before task is submitted; there will be a FailedEvaluator event produced which can be handled properly, and no need to throw exception to crash process. JIRA: [REEF-1454](https://issues.apache.org/jira/browse/REEF-1454) Pull request: This closes #1045 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/07e65497 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/07e65497 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/07e65497 Branch: refs/heads/master Commit: 07e654977a88b723806da70663e818a59a00a68f Parents: 66d3d69 Author: Mariia Mykhailova <[email protected]> Authored: Tue Jun 14 16:39:56 2016 -0700 Committer: Markus Weimer <[email protected]> Committed: Wed Jun 15 14:57:54 2016 -0700 ---------------------------------------------------------------------- .../reef/runtime/common/driver/evaluator/EvaluatorManager.java | 3 +++ .../runtime/common/driver/evaluator/EvaluatorStatusManager.java | 4 ++++ 2 files changed, 7 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/07e65497/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManager.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManager.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManager.java index a8bd61a..c461a5b 100644 --- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManager.java +++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManager.java @@ -487,6 +487,9 @@ public final class EvaluatorManager implements Identifiable, AutoCloseable { if (this.stateManager.isAllocated()) { this.stateManager.setSubmitted(); this.resourceLaunchHandler.onNext(resourceLaunchEvent); + } else if (this.stateManager.isFailedOrKilled()) { + LOG.log(Level.WARNING, "Evaluator manager expected" + EvaluatorState.ALLOCATED + + " state but instead is in state " + this.stateManager); } else { throw new RuntimeException("Evaluator manager expected " + EvaluatorState.ALLOCATED + " state but instead is in state " + this.stateManager); http://git-wip-us.apache.org/repos/asf/reef/blob/07e65497/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorStatusManager.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorStatusManager.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorStatusManager.java index 14e89b0..5d5d1f3 100644 --- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorStatusManager.java +++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorStatusManager.java @@ -147,6 +147,10 @@ final class EvaluatorStatusManager { return EvaluatorState.ALLOCATED == this.state; } + synchronized boolean isFailedOrKilled() { + return EvaluatorState.FAILED == this.state || EvaluatorState.KILLED == this.state; + } + @Override public synchronized String toString() { return this.state.toString();
