diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-06-21 14:22:22 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-06-21 14:22:22 +0300 |
commit | a42c80bd480c2060eca30101dab20ea6f6418bc8 (patch) | |
tree | a0a7ab27e52c867637c51ac7126abea15cc4c049 /storage/innobase/trx/trx0roll.cc | |
parent | bcedb4200f26468d33f7064c1e6e126d81b21162 (diff) | |
parent | baf0ef9a18fa69e97deb750d9fa545dd4f162596 (diff) | |
download | mariadb-git-a42c80bd480c2060eca30101dab20ea6f6418bc8.tar.gz |
Merge 10.4 into 10.5
Diffstat (limited to 'storage/innobase/trx/trx0roll.cc')
-rw-r--r-- | storage/innobase/trx/trx0roll.cc | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/storage/innobase/trx/trx0roll.cc b/storage/innobase/trx/trx0roll.cc index ee307d3fba6..23aa950a14a 100644 --- a/storage/innobase/trx/trx0roll.cc +++ b/storage/innobase/trx/trx0roll.cc @@ -71,12 +71,6 @@ inline bool trx_t::rollback_finish() ut_a(!srv_undo_sources); ut_ad(srv_fast_shutdown); ut_d(in_rollback= false); - if (trx_undo_t *&undo= rsegs.m_redo.old_insert) - { - UT_LIST_REMOVE(rsegs.m_redo.rseg->old_insert_list, undo); - ut_free(undo); - undo= nullptr; - } if (trx_undo_t *&undo= rsegs.m_redo.undo) { UT_LIST_REMOVE(rsegs.m_redo.rseg->undo_list, undo); @@ -119,7 +113,7 @@ inline void trx_t::rollback_low(trx_savept_t *savept) error_state = DB_SUCCESS; - if (has_logged_or_recovered()) + if (has_logged()) { ut_ad(rsegs.m_redo.rseg || rsegs.m_noredo.rseg); que_thr_t *thr= pars_complete_graph_for_exec(roll_node, this, heap, @@ -231,7 +225,7 @@ dberr_t trx_rollback_for_mysql(trx_t* trx) case TRX_STATE_PREPARED: case TRX_STATE_PREPARED_RECOVERED: ut_ad(!trx->is_autocommit_non_locking()); - if (trx->rsegs.m_redo.undo || trx->rsegs.m_redo.old_insert) { + if (trx->rsegs.m_redo.undo) { /* The XA ROLLBACK of a XA PREPARE transaction will consist of multiple mini-transactions. @@ -247,11 +241,7 @@ dberr_t trx_rollback_for_mysql(trx_t* trx) killed, and finally, the transaction would be recovered in XA PREPARE state, with some of the actions already having been rolled back. */ - ut_ad(!trx->rsegs.m_redo.undo - || trx->rsegs.m_redo.undo->rseg - == trx->rsegs.m_redo.rseg); - ut_ad(!trx->rsegs.m_redo.old_insert - || trx->rsegs.m_redo.old_insert->rseg + ut_ad(trx->rsegs.m_redo.undo->rseg == trx->rsegs.m_redo.rseg); mtr_t mtr; mtr.start(); @@ -260,10 +250,6 @@ dberr_t trx_rollback_for_mysql(trx_t* trx) trx_undo_set_state_at_prepare(trx, undo, true, &mtr); } - if (trx_undo_t* undo = trx->rsegs.m_redo.old_insert) { - trx_undo_set_state_at_prepare(trx, undo, true, - &mtr); - } mutex_exit(&trx->rsegs.m_redo.rseg->mutex); /* Write the redo log for the XA ROLLBACK state change to the global buffer. It is |