1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-22970 Possible corruption of page_compressed tables, or

when scrubbing is enabled

buf_read_recv_pages(): Ignore the page to read if it is already
present in the freed ranges.

store_freed_or_init_rec(): Store the ranges only if scrubbing
is enabled or page compressed tablespace.

recv_init_crash_recovery_space(): Add the freed range only when
scrubbing or page compressed tablespace.

range_set::contains(): Search the value is present in ranges.

range_set::remove_if_exists(): Remove the value if exist in ranges.

mtr_t::init(): Handles the scenario that mini-transaction may allocate
a page that had just been freed.

recv_sys_t::parse(): Note down the FREE and INIT redo log irrespective
of STORE value.

Removed innodb_tablespaces_scrubbing from test case
This commit is contained in:
Thirunarayanan Balathandayuthapani
2020-07-17 19:56:33 +05:30
parent 4d4865de6f
commit c89366866b
9 changed files with 58 additions and 19 deletions

View File

@ -59,9 +59,7 @@
--loose-innodb_sys_datafiles
--loose-innodb_changed_pages
--loose-innodb_tablespaces_encryption
--loose-innodb_tablespaces_scrubbing
--loose-innodb_mutexes
--loose-innodb_sys_semaphore_waits
--loose-innodb_tablespaces_scrubbing
--loose-innodb_mutexes
--loose-innodb_sys_semaphore_waits