Bug #38078 CHECK table does not spot checksum only errors in Innodb
Submitted: 12 Jul 2008 20:13 Modified: 13 Aug 2008 20:28
Reporter: Peter Zaitsev (Basic Quality Contributor) Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.0 OS:Any
Assigned to: CPU Architecture:Any

[12 Jul 2008 20:13] Peter Zaitsev
Description:
If you have corruption which only affects checksum  the CHECK TABLE will return "OK" for the table while MySQL will still crash.

How to repeat:
Create innodb table and insert hundred of thousands of rows with data like

"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

Now use "bvi" or other binary editors to edit one the data to find data page and replace one of those A with B 

Now you will get SELECT count(distinct col) FROM tbl to crash with checksum error.

CHECK TABLE tbl

will report table is OK.
[13 Jul 2008 20:28] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior: either SELECT doesn't crash or checksum is wrong. Please indicate accurate version of MySQL you are using and provide output of SHOW CREATE TABLE.
[13 Aug 2008 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[8 Sep 2010 19:01] James Day
You can get this if you have deliberately set innodb_force_recovery = 1 to disable checksum tests. It's working as designed. There's no setting at present that says do the checksum tests but don't shut down the server if you find a checksum mismatch. There is some pending work that may pass errors up the call tree when there's a checksum failure and that may eventually allow check table to report errors instead of having the server shut down.