spark git commit: [SPARK-11066] Update DAGScheduler's "misbehaved ResultHandler"
Repository: spark Updated Branches: refs/heads/branch-1.5 c27e19042 -> 63ca9f921 [SPARK-11066] Update DAGScheduler's "misbehaved ResultHandler" Restrict tasks (of job) to only 1 to ensure that the causing Exception asserted for job failure is the deliberately thrown DAGSchedulerSuiteDummyException intended, not an UnsupportedOperationException from any second/subsequent tasks that can propagate from a race condition during code execution. Author: shellbergCloses #9076 from shellberg/shellberg-DAGSchedulerSuite-misbehavedResultHandlerTest-patch-1. (cherry picked from commit 523adc24a683930304f408d477607edfe9de7b76) Signed-off-by: Sean Owen Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/63ca9f92 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/63ca9f92 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/63ca9f92 Branch: refs/heads/branch-1.5 Commit: 63ca9f9219eddf9902e845598800155b74fb8c84 Parents: c27e190 Author: shellberg Authored: Thu Oct 15 18:07:10 2015 +0100 Committer: Sean Owen Committed: Thu Oct 15 18:07:21 2015 +0100 -- .../org/apache/spark/scheduler/DAGSchedulerSuite.scala | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/63ca9f92/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala -- diff --git a/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala b/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala index ed481b1..7232970 100644 --- a/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala +++ b/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala @@ -850,18 +850,27 @@ class DAGSchedulerSuite assert(sc.parallelize(1 to 10, 2).count() === 10) } + /** + * The job will be failed on first task throwing a DAGSchedulerSuiteDummyException. + * Any subsequent task WILL throw a legitimate java.lang.UnsupportedOperationException. + * If multiple tasks, there exists a race condition between the SparkDriverExecutionExceptions + * and their differing causes as to which will represent result for job... + */ test("misbehaved resultHandler should not crash DAGScheduler and SparkContext") { val e = intercept[SparkDriverExecutionException] { + // Number of parallelized partitions implies number of tasks of job val rdd = sc.parallelize(1 to 10, 2) sc.runJob[Int, Int]( rdd, (context: TaskContext, iter: Iterator[Int]) => iter.size, -Seq(0, 1), +// For a robust test assertion, limit number of job tasks to 1; that is, +// if multiple RDD partitions, use id of any one partition, say, first partition id=0 +Seq(0), (part: Int, result: Int) => throw new DAGSchedulerSuiteDummyException) } assert(e.getCause.isInstanceOf[DAGSchedulerSuiteDummyException]) -// Make sure we can still run commands +// Make sure we can still run commands on our SparkContext assert(sc.parallelize(1 to 10, 2).count() === 10) } - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
spark git commit: [SPARK-11066] Update DAGScheduler's "misbehaved ResultHandler"
Repository: spark Updated Branches: refs/heads/master aec4400be -> 523adc24a [SPARK-11066] Update DAGScheduler's "misbehaved ResultHandler" Restrict tasks (of job) to only 1 to ensure that the causing Exception asserted for job failure is the deliberately thrown DAGSchedulerSuiteDummyException intended, not an UnsupportedOperationException from any second/subsequent tasks that can propagate from a race condition during code execution. Author: shellbergCloses #9076 from shellberg/shellberg-DAGSchedulerSuite-misbehavedResultHandlerTest-patch-1. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/523adc24 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/523adc24 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/523adc24 Branch: refs/heads/master Commit: 523adc24a683930304f408d477607edfe9de7b76 Parents: aec4400 Author: shellberg Authored: Thu Oct 15 18:07:10 2015 +0100 Committer: Sean Owen Committed: Thu Oct 15 18:07:10 2015 +0100 -- .../org/apache/spark/scheduler/DAGSchedulerSuite.scala | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/523adc24/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala -- diff --git a/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala b/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala index 697c195..5b01ddb 100644 --- a/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala +++ b/core/src/test/scala/org/apache/spark/scheduler/DAGSchedulerSuite.scala @@ -1375,18 +1375,27 @@ class DAGSchedulerSuite assert(sc.parallelize(1 to 10, 2).count() === 10) } + /** + * The job will be failed on first task throwing a DAGSchedulerSuiteDummyException. + * Any subsequent task WILL throw a legitimate java.lang.UnsupportedOperationException. + * If multiple tasks, there exists a race condition between the SparkDriverExecutionExceptions + * and their differing causes as to which will represent result for job... + */ test("misbehaved resultHandler should not crash DAGScheduler and SparkContext") { val e = intercept[SparkDriverExecutionException] { + // Number of parallelized partitions implies number of tasks of job val rdd = sc.parallelize(1 to 10, 2) sc.runJob[Int, Int]( rdd, (context: TaskContext, iter: Iterator[Int]) => iter.size, -Seq(0, 1), +// For a robust test assertion, limit number of job tasks to 1; that is, +// if multiple RDD partitions, use id of any one partition, say, first partition id=0 +Seq(0), (part: Int, result: Int) => throw new DAGSchedulerSuiteDummyException) } assert(e.getCause.isInstanceOf[DAGSchedulerSuiteDummyException]) -// Make sure we can still run commands +// Make sure we can still run commands on our SparkContext assert(sc.parallelize(1 to 10, 2).count() === 10) } - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org