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

executor: avoid goroutine leak in index Lookup join (#19251) #20791

Merged
merged 4 commits into from
Nov 12, 2020

Conversation

ti-srebot
Copy link
Contributor

cherry-pick #19251 to release-3.0


What problem does this PR solve?

Issue Number: close #19354

Problem Summary: the index lookup join leak goroutines if inner works build innerExec failed, because it returns immediately after opened, ignore closing.
besides, if one innerworker find ctx.Done(), it returns but let task.innerResult is null, which is later called but without judgement. This causes panic.

What is changed and how it works?

Proposal: xxx

What's Changed:
move defer innerExec.close before return errors.
judgen task.innerResult before using it.

How it Works:

Related changes

  • Need to cherry-pick to the release branch

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No code

Side effects

  • Performance regression
    • Consumes more CPU
    • Consumes more MEM
  • Breaking backward compatibility

Release note

  • avoid goroutine leak in index lookup join

Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
@ti-srebot
Copy link
Contributor Author

/run-all-tests

Copy link
Contributor

@lzmhhh123 lzmhhh123 left a comment

Choose a reason for hiding this comment

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

LGTM

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Nov 12, 2020
@fzhedu
Copy link
Contributor

fzhedu commented Nov 12, 2020

/merge

@ti-srebot
Copy link
Contributor Author

Sorry @fzhedu, this branch cannot be merged without an approval of release maintainers

Copy link
Contributor

@XuHuaiyu XuHuaiyu left a comment

Choose a reason for hiding this comment

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

LGTM

@ti-srebot ti-srebot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Nov 12, 2020
@fzhedu
Copy link
Contributor

fzhedu commented Nov 12, 2020

/merge

@ti-srebot ti-srebot added the status/can-merge Indicates a PR has been approved by a committer. label Nov 12, 2020
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot ti-srebot merged commit 6af0e02 into pingcap:release-3.0 Nov 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
challenge-program component/executor sig/execution SIG execution status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. type/bugfix This PR fixes a bug. type/3.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants