-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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,distsql: fix analyze version 2 memory leak (#28729) #29305
executor,distsql: fix analyze version 2 memory leak (#28729) #29305
Conversation
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
/run-all-tests |
@tiancaiamao you're already a collaborator in bot's repo. |
/rebuild |
1 similar comment
/rebuild |
/merge |
This pull request has been accepted and is ready to merge. Commit hash: e238810
|
/merge |
/merge |
Ref #32499 |
cherry-pick #28729 to release-5.1
You can switch your code base to this Pull Request by using git-extras:
# In tidb repo: git pr https://github.com/pingcap/tidb/pull/29305
After apply modifications, you can push your change to this PR via:
What problem does this PR solve?
Fix oncall 3776
Problem Summary:
What is changed and how it works?
When error happen during the
NextRaw()
call,buildSamplingStats
returns without close the task channel, cause thesubMergeWorker
leak and the the memory leak.What's Changed:
Handle the resource close correctly when error happens.
How it Works:
When error happen, the channel is closed, so the worker goroutine can exit.
I write a test using failpoint to mock the error, before the fix, the test log looks like this:
Check List
Tests
Side effects
Documentation
Release note