-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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: make sure hashjoin's goroutine exit before Close
return
#8338
Conversation
/run-all-tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you checked other parallel operators?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@eurekaka I only check hashjoin and this new groutine is introduce in those two month. |
/run-all-tests |
@zz-jason PTAL & /run-all-tests |
executor/join.go
Outdated
e.fetchInnerDone.Add(1) | ||
go util.WithRecovery( | ||
func() { e.fetchInnerRows(ctx, innerResultCh, doneCh) }, | ||
func(r interface{}) { e.finishFetchInnerRows(innerResultCh) }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why only finishFetchInnerRows()
when the fetchInnerRows()
goroutine is paniced?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not~ it alway call finishFetchInnerRows but with r ==nil
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😂 I was mislead by the r interface{}
parameter in the function call.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we move the cleaning code into that function, and only do the recover work in this function?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What problem does this PR solve?
fixes #8337
What is changed and how it works?
also wait
fetchInnerRows
goroutine exit when foundfinished
be setted.Check List
Tests
Code changes
Side effects
Related changes
This change is