Bug #75968 | Mitigate the strictness of strict_* modes of innodb_checksum_algorithm | ||
---|---|---|---|
Submitted: | 19 Feb 2015 12:51 | Modified: | 9 Apr 2015 17:55 |
Reporter: | Vasil Dimov | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 5.6 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[19 Feb 2015 12:51]
Vasil Dimov
[9 Apr 2015 17:55]
Daniel Price
Posted by developer: Fixed as of the upcoming 5.6.25, 5.7.8, 5.8.0 releases, and here's the changelog entry: The "strict_*" forms of "innodb_checksum_algorithm" settings ("strict_none", "strict_innodb", and "strict_crc32") caused the server to halt when a non-matching checksum was encountered, even if a non-matching checksum was valid. For example, with "innodb_checksum_algorithm=strict_crc32", encountering a valid "innodb" checksum would halt the server. Instead of halting the server, a message is now printed to the error log and the page is accepted as valid if it matches an "innodb", "crc32" or "none" checksum. The 5.6 and 5.7 innodb_checksum_algorithm description was also updated.
[13 Apr 2015 19:30]
Daniel Price
Posted by developer: Post-push fix. No change to existing changelog entry.
[21 Jan 2016 13:21]
Daniel Price
Posted by developer: The changelog entry was revised for clarity: The innodb_checksum_algorithm strict_* settings (strict_none, strict_innodb, and strict_crc32) caused the server to halt when InnoDB encountered a valid but non-matching checksum. For example, with innodb_checksum_algorithm=strict_crc32, a valid innodb checksum would cause the server to halt. Now, instead of halting the server, InnoDB only prints an error message.