mariadb/storage/innobase/trx
Marko Mäkelä 17080cbcf0 MDEV-21945 Assertion w==OPT failed in trx_purge_add_undo_to_history()
By default, when redo log is being written for modifying a persistent
data page, the data page must actually be changed. If the write can
sometimes be optimized away, then the template parameter w=mtr_t::OPT
should be passed in order to silence the debug assertion failure.

InnoDB undo log pages can be reused without properly freeing or
initializing them in between. In particular, the undo log header
page field TRX_UNDO_TRX_NO could have been part of an undo log
record page, and those bytes could accidentally have the desired
value when the page is reused as an undo log header page of
another transaction.

Because the function trx_undo_set_state_at_finish() always changes
the TRX_UNDO_STATE of the page, and because recovery is only reading
TRX_UNDO_TRX_NO for pages that either have the correct TRX_UNDO_STATE
or, in trx_rseg_array_init(), are attached to the TRX_SYS page, the
garbage values in TRX_UNDO_TRX_NO do not seem to cause a problem.

This assertion failure affects debug builds only.
2020-03-16 08:58:54 +02:00
..
trx0i_s.cc MDEV-21907: Fix or disable -Wconversion on GCC 5.3.0 i386 2020-03-13 06:55:00 +02:00
trx0purge.cc MDEV-21945 Assertion w==OPT failed in trx_purge_add_undo_to_history() 2020-03-16 08:58:54 +02:00
trx0rec.cc MDEV-21907: InnoDB: Enable -Wconversion on clang and GCC 2020-03-12 19:46:41 +02:00
trx0roll.cc Remove InnoDB wrappers of <string.h> functions 2019-10-30 07:31:39 +02:00
trx0rseg.cc MDEV-21907: InnoDB: Enable -Wconversion on clang and GCC 2020-03-12 19:46:41 +02:00
trx0sys.cc MDEV-21174: Replace mlog_memset() with mtr_t::memset() 2019-12-03 11:05:19 +02:00
trx0trx.cc Pre-MDEV-742 InnoDB fixes 2020-03-13 15:44:42 +04:00
trx0undo.cc MDEV-21766 - Forbid XID with empty 'gtrid' 2020-02-28 22:27:55 +04:00