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-39447][SQL][3.2] Avoid AssertionError in AdaptiveSparkPlanExec.doExecuteBroadcast #37087

Closed
wants to merge 1 commit into from

Conversation

ulysses-you
Copy link
Contributor

This is a backport of #36974 for branch-3.2

What changes were proposed in this pull request?

Change currentPhysicalPlan to inputPlan when we restore the broadcast exchange for DPP.

Why are the changes needed?

The currentPhysicalPlan can be wrapped with broadcast query stage so it is not safe to match it. For example:
The broadcast exchange which is added by DPP is running before than the normal broadcast exchange(e.g. introduced by join).

Does this PR introduce any user-facing change?

yes bug fix

How was this patch tested?

add test

@ulysses-you
Copy link
Contributor Author

@cloud-fan oh, this patch is based on #36953 but it does not backport into branch-3.2. Shall we also backport #36953 into branch-3.2 ?

@@ -1597,6 +1597,25 @@ class DynamicPartitionPruningV1SuiteAEOff extends DynamicPartitionPruningV1Suite
class DynamicPartitionPruningV1SuiteAEOn extends DynamicPartitionPruningV1Suite
with EnableAdaptiveExecutionSuite {

test("SPARK-39447: Avoid AssertionError in AdaptiveSparkPlanExec.doExecuteBroadcast") {
Copy link
Member

Choose a reason for hiding this comment

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

Do you mean this test case doesn't fail currently in branch-3.2 because we don't have SPARK-39551, @ulysses-you ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@dongjoon-hyun sorry I made it not clear. I mean some tests failed in this pr due to we miss #36953 in branch-3.2. That said, this fix must work together with that pr.

@cloud-fan
Copy link
Contributor

cloud-fan commented Jul 6, 2022

Shall we also backport #36953 into branch-3.2 ?

+1, can you help to create the PR?

@dongjoon-hyun
Copy link
Member

Yep, +1 for backporting that PR first and revisit this PR after merging it.

@dongjoon-hyun
Copy link
Member

Since @ulysses-you seems to be busy, I made a backporting PR of #36953 , @cloud-fan , for Apache Spark 3.2.2 preparation.

@dongjoon-hyun
Copy link
Member

Thank you for rebasing, @ulysses-you .

@ulysses-you
Copy link
Contributor Author

all test passed, the report seems broken

@cloud-fan
Copy link
Contributor

thanks, merging to 3.2!

cloud-fan pushed a commit that referenced this pull request Jul 7, 2022
….doExecuteBroadcast

This is a backport of #36974 for branch-3.2

### What changes were proposed in this pull request?

Change `currentPhysicalPlan` to `inputPlan ` when we restore the broadcast exchange for DPP.

### Why are the changes needed?

The currentPhysicalPlan can be wrapped with broadcast query stage so it is not safe to match it. For example:
 The broadcast exchange which is added by DPP is running before than the normal broadcast exchange(e.g. introduced by join).

### Does this PR introduce _any_ user-facing change?

yes bug fix

### How was this patch tested?

add test

Closes #37087 from ulysses-you/inputplan-3.2.

Authored-by: ulysses-you <ulyssesyou18@gmail.com>
Signed-off-by: Wenchen Fan <wenchen@databricks.com>
@cloud-fan cloud-fan closed this Jul 7, 2022
@dongjoon-hyun
Copy link
Member

Thank you, @cloud-fan and @ulysses-you .

@ulysses-you ulysses-you deleted the inputplan-3.2 branch July 7, 2022 23:18
sunchao pushed a commit to sunchao/spark that referenced this pull request Jun 2, 2023
….doExecuteBroadcast

This is a backport of apache#36974 for branch-3.2

### What changes were proposed in this pull request?

Change `currentPhysicalPlan` to `inputPlan ` when we restore the broadcast exchange for DPP.

### Why are the changes needed?

The currentPhysicalPlan can be wrapped with broadcast query stage so it is not safe to match it. For example:
 The broadcast exchange which is added by DPP is running before than the normal broadcast exchange(e.g. introduced by join).

### Does this PR introduce _any_ user-facing change?

yes bug fix

### How was this patch tested?

add test

Closes apache#37087 from ulysses-you/inputplan-3.2.

Authored-by: ulysses-you <ulyssesyou18@gmail.com>
Signed-off-by: Wenchen Fan <wenchen@databricks.com>
(cherry picked from commit 32aff86)
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants