Skip to content

txn: do not rollback transaction statements on timeout#11104

Merged
locker merged 1 commit intotarantool:masterfrom
locker:vy-tx-crash-on-timeout-fix
Feb 10, 2025
Merged

txn: do not rollback transaction statements on timeout#11104
locker merged 1 commit intotarantool:masterfrom
locker:vy-tx-crash-on-timeout-fix

Conversation

@locker
Copy link
Member

@locker locker commented Feb 6, 2025

The transaction timeout may be triggered by vinyl taking too long to read disk while executing a statement. If we roll back the transaction in this case, the statement will be deleted, resulting in a crash when we finally try to commit the statement. Actually, in contrast to the case when a transaction is aborted by a fiber yield, there's no need to rollback the transaction on timeout We don't rollback the transaction on conflict so let's not do it on timeout, either.

Closes #11088

The transaction timeout may be triggered by vinyl taking too long to
read disk while executing a statement. If we roll back the transaction
in this case, the statement will be deleted, resulting in a crash when
we finally try to commit the statement. Actually, in contrast to the
case when a transaction is aborted by a fiber yield, there's no need to
rollback the transaction on timeout  We don't rollback the transaction
on conflict so let's not do it on timeout, either.

Closes tarantool#11088

NO_DOC=bug fix
@locker locker requested a review from a team as a code owner February 6, 2025 12:32
@locker locker requested a review from drewdzzz February 6, 2025 12:55
@coveralls
Copy link

Coverage Status

coverage: 87.377% (-0.004%) from 87.381%
when pulling 6c46c67 on locker:vy-tx-crash-on-timeout-fix
into c86a5e1
on tarantool:master
.

@drewdzzz drewdzzz assigned locker and unassigned drewdzzz Feb 6, 2025
@locker locker requested a review from drewdzzz February 6, 2025 18:14
@locker locker assigned drewdzzz and unassigned locker Feb 6, 2025
@drewdzzz drewdzzz assigned locker and unassigned drewdzzz Feb 7, 2025
@locker locker added the full-ci Enables all tests for a pull request label Feb 10, 2025
@locker locker merged commit a4b9e5d into tarantool:master Feb 10, 2025
95 checks passed
@locker locker deleted the vy-tx-crash-on-timeout-fix branch February 10, 2025 08:31
@locker
Copy link
Member Author

locker commented Feb 10, 2025

Cherry-picked to 3.2 and 3.3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Enables all tests for a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Crash if transaction is aborted by timeout while Vinyl is reading disk

4 participants