-
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
Potential race condition in CREATE TABLE #10410
Comments
Here's a zip file with full logs! |
@aphyr Thanks! |
This has been tricky to reproduce, but I just hit another instance of it. These two happened in long-fork table initialization, which occurs after we've already successfully created and inserted records into the |
@aphyr Thanks! The scenario in which the problem occurred: This PR #10029 fixed this issue. |
hi @aphyr |
I haven't had time to confirm myself, but if you think it's fixed, you're welcome to close the issue! |
OK! We have tested it. |
With TiDB 3.0.0-beta.1, on a five-node EC2 cluster running Debian Stretch, TiDB can return successfully from a
create table
command, then returnTable ... doesn't exist
errors when the same client attempts to insert a record into the table it just created.Our Jepsen test runs the following pair of commands to verify the cluster is ready to serve requests:
If the
create table command completes
, one would expect the subsequent insert to observe that table's existence.Instead, the
insert!
call throws:java.sql.SQLSyntaxErrorException: (conn=1) Table 'test.jepsen_await' doesn't exist
.tidb-server -V
or runselect tidb_version();
on TiDB)?3.0.0-beta.1.
You can reproduce this problem with Jepsen dd9a7a53ddcbc8bf691134598f144e14213e241d by running something like
I haven't seen this in my LXC cluster, but on EC2, roughly 1 in 15 tests crash during cluster setup because of this behavior.
The text was updated successfully, but these errors were encountered: