-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](mysql) fix mysql channel infinite blocking #28808
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
Conversation
c053fe7 to
970a710
Compare
970a710 to
cd0d623
Compare
|
@fornaix Hi hi, could you please describe the problem? Does it relate with this PR? |
|
@yiguolei hi, sure. I found this problem after killing a running query. The query is aborted and there are no running instances in be. But the mysql thread that receives the query is stuck there forever.
Is this problem also stuck in channel blocking write or read? |
yiguolei
left a comment
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
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
|
@fornaix actually I do not know. because I could not get the jstack.
If the query is aborted, and the mysql thread maybe hang in getNext and there is a timeout here. I think I will throw timeout exception. Could you please explain it more detail? My wechat number is monkgrandpa . Could you please add me, we could talk about it at wechat? |
|
run buildall |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G' |
morningman
left a comment
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
|
@fornaix can you submit a PR to branch-2.0 ? |
Call the Channels blocking method with timeout instead. Using session variables net_write_timeout and net_read_timeout as the timeout parameter.
Call the Channels blocking method with timeout instead. Using session variables net_write_timeout and net_read_timeout as the timeout parameter.
* [fix](mysql) fix mysql channel infinite blocking (#28808) Call the Channels blocking method with timeout instead. Using session variables net_write_timeout and net_read_timeout as the timeout parameter. * [conf](mysql) opt mysql network timeout to 600s #32545 --------- Co-authored-by: fornaix <foxnaix@gmail.com>
Proposed changes
Issue Number: close #28807
Further comments
Call the Channels blocking method with timeout instead.
Using session variables net_write_timeout and net_read_timeout as the timeout parameter.