-
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
txn: fix the lock behaviours when for update is used outside transactions | tidb-test=pr/2365 #54694
Conversation
Hi @cfzjywxk. Thanks for your PR. PRs from untrusted users cannot be marked as trusted with I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #54694 +/- ##
=================================================
- Coverage 72.6796% 56.0474% -16.6323%
=================================================
Files 1551 1667 +116
Lines 437176 604993 +167817
=================================================
+ Hits 317738 339083 +21345
- Misses 99819 242723 +142904
- Partials 19619 23187 +3568
Flags with carried forward coverage won't be shown. Click here to find out more.
|
…tions Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
3edb7bb
to
d1f7dda
Compare
/retest |
@cfzjywxk: Cannot trigger testing until a trusted user reviews the PR and leaves an In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Co-authored-by: ekexium <eke@fastmail.com>
@cfzjywxk: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: ekexium, zyguan The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@@ -1091,6 +1091,7 @@ type SessionVars struct { | |||
TxnMode string | |||
|
|||
// LowResolutionTSO is used for reading data with low resolution TSO which is updated once every two seconds. | |||
// Do not use it directly, use the `UseLowResolutionTSO` method below. |
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 unexport it?
if sctx.GetSessionVars().UseLowResolutionTSO() { | ||
return nil, errors.New("can not execute select for update statement when 'tidb_low_resolution_tso' is set") | ||
} |
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.
- When
tidb_low_resolution_tso
is enabled, the in-transctionselect for update
should be rejected.
Is here sure to be in transaction?
if err != nil { | ||
return nil, err | ||
lock, _ := getLockWaitTime(b.ctx, l) | ||
if lock { |
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.
If !lock
, is the above for
loop still necessary?
It's complex to handle the plan with lock operator or executor in the same PR, would split them into differnt PRs. |
What problem does this PR solve?
Issue Number: close #54684 #54705
Problem Summary:
What changed and how does it work?
Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.