[MDEV-21171] InnoDB is unnecessarily resetting FIL_PAGE_TYPE for full_crc32 files Created: 2019-11-28  Updated: 2019-11-28  Resolved: 2019-11-28

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.4.3
Fix Version/s: 10.4.11

Type: Bug Priority: Major
Reporter: Marko Mäkelä Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None


 Description   

Before MDEV-12026 introduced the innodb_checksum_algorithm=full_crc32 format, it was impossible to tell if InnoDB data files contained garbage in the FIL_PAGE_TYPE header field (and possibly other fields). This is because before MySQL 5.1.48, InnoDB would write uninitialized data to some fields, and because there was no way to tell with which InnoDB version a data file was created.

With MDEV-12026, we know that if fil_space_t::full_crc32() holds, the data files do not contain uninitialized garbage. In that case, FIL_PAGE_TYPE should always be correct also for other than index pages, and fil_block_check_type() should not be invoked to correct anything.

So, we should avoid invoking fil_block_check_type() unless !space->full_crc32() holds.


Generated at Thu Feb 08 09:05:07 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.