mariadb/storage/innobase/trx
Marko Mäkelä c14a39431b MDEV-30753 Possible corruption due to trx_purge_free_segment()
Starting with commit 0de3be8cfd (MDEV-30671),
the field TRX_UNDO_NEEDS_PURGE lost its previous meaning.
The following scenario is possible:

(1) InnoDB is killed at a point of time corresponding to the durable
execution of some fseg_free_step_not_header() but not
trx_purge_remove_log_hdr().
(2) After restart, the affected pages are allocated for something else.
(3) Purge will attempt to access the newly reallocated pages when looking
for some old undo log records.

trx_purge_free_segment(): Invoke trx_purge_remove_log_hdr() as the first
thing, to be safe. If the server is killed, some pages will never be
freed. That is the lesser evil. Also, before each mtr.start(), invoke
log_free_check() to prevent ib_logfile0 overrun.
2023-02-28 15:39:23 +02:00
..
trx0i_s.cc Merge branch 10.4 into 10.5 2021-12-26 12:51:04 +01:00
trx0purge.cc MDEV-30753 Possible corruption due to trx_purge_free_segment() 2023-02-28 15:39:23 +02:00
trx0rec.cc Merge 10.4 into 10.5 2022-10-06 08:29:56 +03:00
trx0roll.cc Merge branch '10.3' into 10.4 2021-07-31 22:59:58 +02:00
trx0rseg.cc MDEV-30671 InnoDB undo log truncation fails to wait for purge of history 2023-02-24 14:24:44 +02:00
trx0sys.cc Merge 10.4 into 10.5 2021-09-24 12:14:35 +03:00
trx0trx.cc MDEV-30671 InnoDB undo log truncation fails to wait for purge of history 2023-02-24 14:24:44 +02:00
trx0undo.cc MDEV-30671 InnoDB undo log truncation fails to wait for purge of history 2023-02-24 14:24:44 +02:00