Skip to content
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

(*batchTx) UnsafeDelete may break the linearizability #17158

Open
4 tasks done
ahrtr opened this issue Dec 21, 2023 · 1 comment
Open
4 tasks done

(*batchTx) UnsafeDelete may break the linearizability #17158

ahrtr opened this issue Dec 21, 2023 · 1 comment
Assignees
Labels
backport/v3.4 backport/v3.5 help wanted priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. type/bug

Comments

@ahrtr
Copy link
Member

ahrtr commented Dec 21, 2023

Bug report criteria

What happened?

TL; DR

(*batchTx) UnsafeDelete may break the linearizability. etcd may still read stale data when during applying a request if previous applying process includes (*batchTx) UnsafeDelete request(s).

Root cause

Please refer to

Solution

The PR should contains the following content/commits,

Backport

The fix should be backported to both 3.5 and. 3.4

What did you expect to happen?

Ensure linearizability on any deletion operations.

How can we reproduce it (as minimally and precisely as possible)?

See above

Anything else we need to know?

No response

Etcd version (please run commands below)

all releases

Etcd configuration (command line flags or environment variables)

paste your configuration here

Etcd debug information (please run commands below, feel free to obfuscate the IP address or FQDN in the output)

$ etcdctl member list -w table
# paste output here

$ etcdctl --endpoints=<member list> endpoint status -w table
# paste output here

Relevant log output

No response

@serathius
Copy link
Member

We are seeing more and more compounding issues with batchTxBuffered, I think we should consider two things:

  • More generic testing like proposed in Revise backend transaction testing #17126, there is just too much risk of missing an issue due to how complicated the code is.
  • Better impact analysis. We know that txn correctness issues don't affect KV store or they would be found by robustness tests. However there is large API surfaced not covered by robustness tests. Things like authorization, membership, leases etc. I think we need to add a verifier that will confirm correct behavior of backend. See https://github.com/etcd-io/etcd/blob/main/server/verify/verify.go#L46 as an example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/v3.4 backport/v3.5 help wanted priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. type/bug
Development

No branches or pull requests

3 participants