Repository: reef Updated Branches: refs/heads/master 9b2bcb5bc -> 4811a5d79
[REEF-1804] Make TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose more lenient JIRA: [REEF-1804](https://issues.apache.org/jira/browse/REEF-1804) Pull Request: This closes #1311 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/4811a5d7 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/4811a5d7 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/4811a5d7 Branch: refs/heads/master Commit: 4811a5d7920d2e964031de980ebf30ad6f74e93d Parents: 9b2bcb5 Author: Julia Wang <[email protected]> Authored: Wed May 31 20:21:45 2017 -0700 Committer: Markus Weimer <[email protected]> Committed: Mon Jun 5 09:44:17 2017 -0700 ---------------------------------------------------------------------- ...valuatorsWithFailedResultHandlerOnDispose.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/4811a5d7/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs b/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs index 10deef6..c7a0c4b 100644 --- a/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs +++ b/lang/cs/Org.Apache.REEF.Tests/Functional/IMRU/TestFailMapperEvaluatorsWithFailedResultHandlerOnDispose.cs @@ -67,13 +67,25 @@ namespace Org.Apache.REEF.Tests.Functional.IMRU Assert.Equal(numTasks, runningTaskCount); // Tasks should fail or complete or disappear with failed evaluator - Assert.Equal(numTasks, completedTaskCount + failedEvaluatorCount + failedTaskCount); - + // However, if the updateTask is completed before receiving Close event from the driver, + // TaskRuntime informs the driver about the result before throwing exception caused by the dispose in + // the result handler, that may end up two events from the update task/evaluator, one is CompletedTask, + // the other is FailedEvaluator + var total = completedTaskCount + failedEvaluatorCount + failedTaskCount; + var faildMsg = string.Format( + "Expected total events: {0}, actual number of events {1}, completedTaskCount: {2}, failedEvaluatorCount: {3}, failedTaskCount: {4}.", + numTasks, + total, + completedTaskCount, + failedEvaluatorCount, + failedTaskCount); + Assert.True(numTasks == total || numTasks == total - 1, faildMsg); + // We have failed two mappers and one update evaluator in the test code. As the update evaluator failure // happens in Dispose(), driver may/may not receive FailedEvaluator before shut down. - Assert.True(failedEvaluatorCount <= 3 && failedEvaluatorCount >= 2); + Assert.True(failedEvaluatorCount <= 3 && failedEvaluatorCount >= 2, "failedEvaluatorCount is " + failedEvaluatorCount); - // eventually job fail because master evaluator fail before the iteration is completed + // eventually job fails because master evaluator fails before the iteration is completed Assert.Equal(0, jobSuccess); CleanUp(testFolder); }
