-
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
copr: do not hide original error for MPP query that will not faillback to TiKV #29342
Conversation
[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. |
Please follow PR Title Format:
Or if the count of mainly changed packages are more than 3, use
After you have format title, you can leave a comment |
/run-check_title |
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.
This PR will eliminate the origin error message.
When fallback takes effect, error from tiflash will be recorded in the warnings.
But when we want to support other error types besides ErrTiFlashServerTimeout
, we need another way to record warnings.
@LittleFall Why will the pr eliminate the origin error message?(or do you mean that #22459 will eliminate the origin error message). If fallback doesn't take effect, then the user receives the origin error message. If fallback takes effect, tidb server logs the original error and the user receives Besides, when the query is allowed to fall back, maybe adding the original error in the warnings is better than adding the unified error |
My mistake, it was #23078 that hide the original error to make fallback work more widely. |
You are right, we should not cover up the original error with I want to explain if we want to change the behavior back (throw the original error, instead of tiflash server timeout) in this pr, Do you have any suggestions about the implementation? |
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.
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.
rest LGTM
This is batchCop related, MPP query will never reach there. |
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
/run-check_dev_2 |
it's not this pr's fault, record a issue: #29396 |
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
remote read can not reach here? |
7b82b48
to
af6f452
Compare
/merge |
This pull request has been accepted and is ready to merge. Commit hash: af6f452
|
/run-check_dev_2 |
I haven't thought of a good way to solve the problem. Maybe we should list the errors that need fallback rather than convert all the errors to ErrTiFlashServerTimeout. But the errors can be different errors (such as rpc errors and so on) and it may be hard to list them. At least showing the original error instead of ErrTiFlashServerTimeout in the warnings as #29396 suggests is an improvement. |
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
After #23078, in order to trigger fallback, when MPP query hit some error, the original error maybe hiden and instead just return a unified error named
TiFlash server timeout
, so in most of the case, when MPP query fails, user will getTiFlash server timeout
, this is very confusing.What is changed and how it works?
Only hide the original error message for mpp query if this query is allowed to fallback.
Check List
Tests
Side effects
Documentation
Release note