-
Notifications
You must be signed in to change notification settings - Fork 559
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
DataShard: VERIFY failed: requirement !pr.second->HasFlag(TTxFlags::BlockingImmediateOps) failed #3142
Comments
There are many more stack traces like this:
|
One idea on how this might happen:
Thus it's clear that |
As far as I can see this was only triggering when I was testing disabled volatile transactions. Makes sense, since volatile transactions are not persistent and don't migrate on restarts for now. |
I've got several crashes under Jepsen that look like this:
And while
MarkedPlannedLogically*
functions maintain (and check) their iterator invariants, it looks like whenAddActiveOp
tries to adhoc restore flags (because we want to stop persisting them in the future), they are not restored correctly: UnprotectedReadEdge should not mark its own version as complete, but rather as incomplete.But here's the kicker: this should affect at most one transaction that is exactly equal to this UnprotectedReadEdge, and it shouldn't matter what it's marked as, as long as CompleteEdge and IncompleteEdge move as expected (and when they do we mark transactions already in active ops). This may all indicate there's some instability in how we choose versions, need to investigate.
The text was updated successfully, but these errors were encountered: