diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2019-01-07 12:12:30 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2019-01-07 12:12:30 +0200 |
commit | 1d56d875fe28f34cefc1bb4e162331ae9f4ce9bb (patch) | |
tree | 0257ee1a9dbcce199eecb6e24ab4406010f5c4b7 /extra | |
parent | 7158edcba3af3766e9329f9927ce4adfd2a40bf8 (diff) | |
download | mariadb-git-1d56d875fe28f34cefc1bb4e162331ae9f4ce9bb.tar.gz |
MDEV-15740: InnoDB does not flush redo log when it shoul
During database recovery, a transaction with wsrep XID is
recovered from InnoDB in prepared state. However, when the
transaction is looked up with trx_get_trx_by_xid() in
innobase_commit_by_xid(), trx->xid gets cleared in
trx_get_trx_by_xid_low() and commit time serialization history
write does not update the wsrep XID in trx sys header for
that recovered trx. As a result the transaction gets
committed during recovery but the wsrep position does not
get updated appropriately.
As a fix, we preserve trx->xid for Galera over transaction
commit in recovery phase.
Fix authored by: Teemu Ollakka (GaleraCluster) and Marko Mäkelä.
modified: mysql-test/suite/galera/disabled.def
modified: mysql-test/suite/galera/r/galera_gcache_recover_full_gcache.result
modified: mysql-test/suite/galera/r/galera_gcache_recover_manytrx.result
modified: mysql-test/suite/galera/t/galera_gcache_recover_full_gcache.test
modified: mysql-test/suite/galera/t/galera_gcache_recover_manytrx.test
modified: storage/innobase/trx/trx0trx.cc
modified: storage/xtradb/trx/trx0trx.cc
Diffstat (limited to 'extra')
0 files changed, 0 insertions, 0 deletions