mariadb/storage/xtradb/trx
Jan Lindström 1d56d875fe 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
2019-01-07 12:12:30 +02:00
..
trx0i_s.cc Never pass NULL to innobase_get_stmt() 2017-05-17 08:27:04 +03:00
trx0purge.cc Merge branch '10.0' into 10.1 2018-10-31 10:53:22 +01:00
trx0rec.cc Revert "MDEV-6928: Add trx pointer to struct mtr_t" 2018-01-29 11:05:17 +02:00
trx0roll.cc Revert "MDEV-14705: Do not rollback on InnoDB shutdown" 2018-04-10 08:55:20 +03:00
trx0rseg.cc MDEV-13807 mariabackup --apply-log-only does generate redo log by performing rollback and possibly other tasks 2017-09-16 09:55:49 +03:00
trx0sys.cc Fix -Wclass-memaccess in WSREP,InnoDB,XtraDB 2018-08-03 12:21:13 +03:00
trx0trx.cc MDEV-15740: InnoDB does not flush redo log when it shoul 2019-01-07 12:12:30 +02:00
trx0undo.cc Merge branch '10.0' into 10.1 2018-07-31 11:58:29 +02:00