Skip to content
Snippets Groups Projects
Commit 59e4cf61 authored by Andrey Saranchin's avatar Andrey Saranchin Committed by Serge Petrenko
Browse files

memtx: do not rollback prepared statements on DDL

Currently, when DDL is being committed, we delete all the stories and
rollback prepared delete statements. The problem is such rollback is
likely to fail because of assertion. When transaction is rolled back,
all the statements are rolled back in reversed order, but when rollback
happened because of DDL, order is not specified and some invariants are
violated. Let's simply unlink delete statement instead of rollback.

Rollback does two things: unlink delete statement and abort readers
(including gaps) of prepared stories. The commit actually drops the
second part - it's safe because after the previous commits we delete
stories right after aborting all concurrent transactions so there is no
need to abort anything anymore.

Part of #10146
Closes #10474

NO_CHANGELOG=later
NO_DOC=bugfix

(cherry picked from commit 6a11224c85c1be28e7d1570cd4ba01efc033c34f)
parent 74fdd1c8
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment