mariadb/storage/innobase/buf
Marko Mäkelä 024c7e881f MDEV-37103 innodb_immediate_scrub_data_uncompressed=ON may break innodb_undo_log_truncate=ON
The test innodb.undo_truncate occasionally demonstrates a race condition
where scrubbing is writing zeroes to a freed undo page, and
innodb_undo_log_truncate=ON truncating the same tablespace. The
truncation is an exception to the rule that InnoDB tablespace file sizes
can only grow, never shrink.

The fields fil_space_t::size and fil_node_t::size are protected by
fil_system.mutex, which used to be a highly contended resource. We
do not want to revert back to acquiring the mutex in fil_space_t::io()
because that would introduce an obvious scalability bottleneck.

fil_space_t::flush_freed(): Do not try to scrub pages of the undo
tablespace in order to prevent a race condition between io()
and undo tablespace truncation.

fil_space_t::io(): Prevent a null pointer dereference when reporting
an out-of-bounds access to the non-first file of the system or
temporary tablespace. Do not invoke set_corrupted() after an
out-of-bounds asynchronous read.

Note: fil_space_t::flush_freed() may only invoke PUNCH_RANGE on
page_compressed tablespaces, never on an undo tablespace.
2025-07-16 12:01:59 +03:00
..
buf0buddy.cc MDEV-35190 HASH_SEARCH duplicates effort before HASH_INSERT or HASH_DELETE 2024-11-21 08:59:02 +02:00
buf0buf.cc MDEV-27058 fixup: Fix a bogus assertion 2025-07-14 10:31:48 +03:00
buf0checksum.cc MDEV-25105 Remove innodb_checksum_algorithm values none,innodb,... 2021-03-11 12:46:18 +02:00
buf0dblwr.cc MDEV-36226 fixup: format mismatch 2025-04-02 12:53:21 +03:00
buf0dump.cc Merge branch '10.5' into 10.6 2024-07-16 15:54:22 +08:00
buf0flu.cc MDEV-37103 innodb_immediate_scrub_data_uncompressed=ON may break innodb_undo_log_truncate=ON 2025-07-16 12:01:59 +03:00
buf0lru.cc MDEV-35149 Race condition around SET GLOBAL innodb_lru_scan_depth 2024-10-21 10:08:58 +03:00
buf0rea.cc MDEV-35438 Annotate InnoDB I/O functions with noexcept 2025-01-09 07:43:24 +02:00