diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-10-27 11:16:32 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-10-27 11:24:11 +0300 |
commit | b94a62b5dfa48c0ecec8560e8fcd0431d2904e0a (patch) | |
tree | 82b1d279d49464bd82fc8fcea83b17415f9fb5d5 | |
parent | f29cfa1d7e70f129fd53960d010803d79f8c2ed0 (diff) | |
download | mariadb-git-b94a62b5dfa48c0ecec8560e8fcd0431d2904e0a.tar.gz |
MDEV-13890 mariabackup.xb_compressed_encrypted failed in buildbot, InnoDB: assertion failure
The assertion failure was relaxed in
commit 02ba15a9dae97f23cfe47fa788c09d65aa1cfcd2
but it was not enough, because another assertion would fail.
trx_undo_free_prepared(): Allow any undo log state. For transactions
that were resurrected in TRX_STATE_COMMITTED_IN_MEMORY
the undo log state would have been reset by trx_undo_set_state_at_finish().
-rw-r--r-- | storage/innobase/trx/trx0undo.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index e8bea3a2199..5e6b67007ad 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -1818,6 +1818,12 @@ trx_undo_free_prepared( switch (trx->rsegs.m_redo.update_undo->state) { case TRX_UNDO_PREPARED: break; + case TRX_UNDO_CACHED: + case TRX_UNDO_TO_FREE: + case TRX_UNDO_TO_PURGE: + ut_ad(trx_state_eq(trx, + TRX_STATE_COMMITTED_IN_MEMORY)); + /* fall through */ case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ @@ -1840,6 +1846,12 @@ trx_undo_free_prepared( switch (trx->rsegs.m_redo.insert_undo->state) { case TRX_UNDO_PREPARED: break; + case TRX_UNDO_CACHED: + case TRX_UNDO_TO_FREE: + case TRX_UNDO_TO_PURGE: + ut_ad(trx_state_eq(trx, + TRX_STATE_COMMITTED_IN_MEMORY)); + /* fall through */ case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ |