Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.4.3
-
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.