Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-31848][CORE][TEST] DAGSchedulerSuite: Break down the very huge test file #29747

Closed

Conversation

beliefer
Copy link
Contributor

What changes were proposed in this pull request?

The current DAGSchedulerSuite is a very huge test file, we should split this suite into multiple suites which should focus on one or several major features, but not all the related behaviors.
This PR will extract the following features related tests as new suite from the DAGSchedulerSuite:

  • Barrier execution

  • Indeterminate stage

  • Resource profile

Why are the changes needed?

Break down the very huge test files, each test suite should focus on one or several major features, but not all the related behaviors.

Does this PR introduce any user-facing change?

'No'.

How was this patch tested?

Jenkins test.

@SparkQA
Copy link

SparkQA commented Sep 14, 2020

Test build #128625 has finished for PR 29747 at commit 55c0903.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
  • class BarrierExecutionSuite extends DAGSchedulerTestHelper
  • class DAGSchedulerSuite extends DAGSchedulerTestHelper
  • class DAGSchedulerEventProcessLoopTester(dagScheduler: DAGScheduler)
  • class MyCheckpointRDD(
  • class MyRDD(
  • class DAGSchedulerTestHelper extends SparkFunSuite with TempLocalSparkContext with TimeLimits
  • class EventInfoRecordingListener extends SparkListener
  • class MyBlockManagerMaster(conf: SparkConf) extends BlockManagerMaster(null, null, conf, true)
  • class SimpleListener extends JobListener
  • class MyMapOutputTrackerMaster(
  • class EndListener extends SparkListener
  • class IndeterminateStageSuite extends DAGSchedulerTestHelper
  • class ResourceProfileSuite extends DAGSchedulerTestHelper

@SparkQA
Copy link

SparkQA commented Sep 14, 2020

Test build #128627 has finished for PR 29747 at commit 2f053a3.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@beliefer beliefer changed the title [WIP][SPARK-31848][CORE][TEST] DAGSchedulerSuite: Break down the very huge test file [SPARK-31848][CORE][TEST] DAGSchedulerSuite: Break down the very huge test file Sep 14, 2020
@beliefer
Copy link
Contributor Author

cc @Ngone51

def checkAndCompleteRetryStage(
taskSetIndex: Int,
stageId: Int,
shuffleId: Int): Unit = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: 4 indents.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK


class DAGSchedulerSuiteDummyException extends Exception

class DAGSchedulerTestHelper extends SparkFunSuite with TempLocalSparkContext with TimeLimits {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DAGSchedulerBaseSuite?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Offline discussion between @Ngone51 and me, decided to use DAGSchedulerTestBase

}

/** A simple helper class for creating custom JobListeners */
class SimpleListener extends JobListener {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only used by DAGSchedulerSuite. Shall we keep it at DAGSchedulerSuite?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

}

// Helper functions to extract commonly used code in Fetch Failure test cases
protected def setupStageAbortTest(sc: SparkContext): Unit = {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only used by DAGSchedulerSuite too. Shall we keep it at DAGSchedulerSuite?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

* @param numShufflePartitions - The number of partitions in the next stage
* @param hostNames - Host on which each task in the task set is executed
*/
protected def completeShuffleMapStageSuccessfully(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only used by DAGSchedulerSuite too. Shall we keep it at DAGSchedulerSuite? Could you check others?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

completeShuffleMapStageSuccessfully is used by DAGSchedulerSuite, BarrierExecutionSuite and IndeterminateStageSuite.

@beliefer
Copy link
Contributor Author

@jiangxb1987

@SparkQA
Copy link

SparkQA commented Sep 15, 2020

Test build #128706 has finished for PR 29747 at commit cc8bc9e.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
  • class BarrierExecutionSuite extends DAGSchedulerTestBase
  • class DAGSchedulerEventProcessLoopTester(dagScheduler: DAGScheduler)
  • class MyCheckpointRDD(
  • class DAGSchedulerSuite extends DAGSchedulerTestBase
  • class SimpleListener extends JobListener
  • class EndListener extends SparkListener
  • class MyRDD(
  • class DAGSchedulerTestBase extends SparkFunSuite with TempLocalSparkContext with TimeLimits
  • class EventInfoRecordingListener extends SparkListener
  • class MyBlockManagerMaster(conf: SparkConf) extends BlockManagerMaster(null, null, conf, true)
  • class MyMapOutputTrackerMaster(
  • class IndeterminateStageSuite extends DAGSchedulerTestBase
  • class ResourceProfileSuite extends DAGSchedulerTestBase

@SparkQA
Copy link

SparkQA commented Sep 16, 2020

Test build #128758 has started for PR 29747 at commit d4ce868.

@beliefer
Copy link
Contributor Author

retest this please

@SparkQA
Copy link

SparkQA commented Sep 17, 2020

Test build #128786 has finished for PR 29747 at commit d4ce868.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@beliefer
Copy link
Contributor Author

cc @jiangxb1987

@github-actions
Copy link

github-actions bot commented Jan 4, 2021

We're closing this PR because it hasn't been updated in a while. This isn't a judgement on the merit of the PR in any way. It's just a way of keeping the PR queue manageable.
If you'd like to revive this PR, please reopen it and ask a committer to remove the Stale tag!

@github-actions github-actions bot added the Stale label Jan 4, 2021
@github-actions github-actions bot closed this Jan 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants