txn: ignore changes after rollback on yield
Previously, if a yield occurs for a transaction that does not support it, we roll back all its statements, but still process its new statements (they will roll back with each yield). Also, the transaction will be rolled back when a commit is attempted. Now we stop processing any new statements right after first yield, if transaction doesn't support it. This is done so that when we implement timeout for transactions, the rollback of the transaction at its expiration and at yield has the same behavior. Part of #6177
Showing
- changelogs/unreleased/change-transaction-behaviour-after-rollback-on-yield.md 8 additions, 0 deletions...d/change-transaction-behaviour-after-rollback-on-yield.md
- src/box/memtx_tx.c 2 additions, 0 deletionssrc/box/memtx_tx.c
- src/box/txn.c 27 additions, 14 deletionssrc/box/txn.c
- src/box/txn.h 11 additions, 0 deletionssrc/box/txn.h
Loading
Please register or sign in to comment