-
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: fix DATA RACE for reading information_schema.columns where there are views #34538
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. |
Code Coverage Details: https://codecov.io/github/pingcap/tidb/commit/f36633e6f770d1faebff752aa5fd17249a59de19 |
/merge |
This pull request has been accepted and is ready to merge. Commit hash: 790a5c0
|
/run-mysql-test |
/hold @tiancaiamao The panic problem #32459 can occur in this PR. |
/unhold |
/run-mysql-test |
/merge |
This pull request has been accepted and is ready to merge. Commit hash: 60a744b
|
TiDB MergeCI notify🔴 Bad News! New failing [1] after this pr merged.
|
…there are views (pingcap#34538) close pingcap#34509
What problem does this PR solve?
Issue Number: close #34509
Problem Summary:
When reading from
information_schema.columns
, the data forview
are special.Because unlike a normal table, the columns of a
view
is generated from other plan.The old code use
tryFillViewColumnType()
function to modify the table column information.Note, this table column information (infoschema tableInfo) is shared by all the whole process,
it's designed to be read-only (use atomic replacement in
domain.Reload()
as a whole).Modify this is not thread-safe, especially in
join
executor, there're many join worker process.What is changed and how it works?
Avoid using
tryFillViewColumnType
which modify the column of tableInfo.Column.Check List
Tests
Check the DATA RACE is fixed:
make ut X='run executor --race'
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.