Repository: reef Updated Branches: refs/heads/master 6c597f140 -> 92b21364c
[REEF-1688] IMRU: Don't fail if RM allocates extra evaluators This change replaces exception thrown if RM allocates more evaluators than IMRU driver requested with a warning and evaluator ignore. JIRA: [REEF-1688](https://issues.apache.org/jira/browse/REEF-1688) Pull request: This closes #1204 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/92b21364 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/92b21364 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/92b21364 Branch: refs/heads/master Commit: 92b21364c7234c57b4c4dcfa550078a2e2b82ada Parents: 6c597f1 Author: Mariia Mykhailova <[email protected]> Authored: Thu Dec 15 11:41:39 2016 -0800 Committer: Julia Wang <[email protected]> Committed: Mon Dec 19 10:10:23 2016 -0800 ---------------------------------------------------------------------- lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs | 6 ++++-- .../Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs | 8 +++++--- lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs | 4 ++++ 3 files changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/92b21364/lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs b/lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs index 648d0f5..536d283 100644 --- a/lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs +++ b/lang/cs/Org.Apache.REEF.IMRU.Tests/TestEvaluatorManager.cs @@ -89,8 +89,10 @@ namespace Org.Apache.REEF.IMRU.Tests var evaluatorManager = CreateEvaluatorManager(2, 1); evaluatorManager.AddMasterEvaluator(CreateMockAllocatedEvaluator(1)); evaluatorManager.AddAllocatedEvaluator(CreateMockAllocatedEvaluator(2)); - Action add = () => evaluatorManager.AddAllocatedEvaluator(CreateMockAllocatedEvaluator(3)); - Assert.Throws<IMRUSystemException>(add); + evaluatorManager.AddAllocatedEvaluator(CreateMockAllocatedEvaluator(3)); + + // the last evaluator should be just ignored + Assert.False(evaluatorManager.IsAllocatedEvaluator(EvaluatorIdPrefix + "3")); } /// <summary> http://git-wip-us.apache.org/repos/asf/reef/blob/92b21364/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs index 27a0f3e..fdab06e 100644 --- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs +++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/EvaluatorManager.cs @@ -128,15 +128,17 @@ namespace Org.Apache.REEF.IMRU.OnREEF.Driver if (NumberOfAllocatedEvaluators >= _totalExpectedEvaluators) { - string msg = string.Format("Trying to add an additional Evaluator {0}, but the total expected Evaluator number {1} has been reached.", evaluator.Id, _totalExpectedEvaluators); - Exceptions.Throw(new IMRUSystemException(msg), Logger); + string msg = string.Format("Trying to add an additional evaluator {0}, but the total expected Evaluator number {1} has been reached. Ignoring new evaluator", + evaluator.Id, _totalExpectedEvaluators); + Logger.Log(Level.Warning, msg); + return; } _allocatedEvaluatorIds.Add(evaluator.Id); if (_masterEvaluatorId == null && NumberOfAllocatedEvaluators == _totalExpectedEvaluators) { - string msg = string.Format("Added the last Evaluator {0} but master Evaluator is not added yet.", evaluator.Id); + string msg = string.Format("Added the last evaluator {0} but master evaluator is not added yet.", evaluator.Id); Exceptions.Throw(new IMRUSystemException(msg), Logger); } } http://git-wip-us.apache.org/repos/asf/reef/blob/92b21364/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs index d0cd537..27eeba8 100644 --- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs +++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/Driver/IMRUDriver.cs @@ -295,6 +295,10 @@ namespace Org.Apache.REEF.IMRU.OnREEF.Driver } else { + if (!_evaluatorManager.IsAllocatedEvaluator(allocatedEvaluator.Id)) + { + return; + } configs = _serviceAndContextConfigurationProvider .GetDataLoadingConfigurationForEvaluatorById( allocatedEvaluator.Id);
