Skip to content
Snippets Groups Projects
user avatar
Ilya Verbin authored
Existence of txn_commit_ro_stmt assumes there is txn_rollback_ro_stmt,
but it does not exist. Instead, currently we use txn_rollback_stmt, which
has nothing to do with 'ro' statements, and will just rollback the
currently running normal statement.

As an example, consider box_index_iterator. It calls txn_begin_ro_stmt,
which does not produce any artefacts in an existing `struct txn`. But in
case of the iterator creation fail it calls txn_rollback_stmt, which will
rollback the currently being executed 'rw' statement.

Drop txn_commit_ro_stmt and introduce txn_end_ro_stmt, which is called
regardless of 'ro' statement result.

NO_DOC=bugfix

Closes #5501

(cherry picked from commit d94eb857)
cba6f917
History
Name Last commit Last update