Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.6
Description
MDEV-26626 exposed the following failure on my system, when running a 32-bit build:
./mtr --rr innodb.doublewrite,4k,strict_full_crc32
|
10.6 106b16a5af7a8e29889e0ef8930bd2901a9ad00e |
innodb.doublewrite '4k,innodb,strict_full_crc32' [ fail ]
|
Test ended at 2021-09-17 08:28:10
|
|
CURRENT_TEST: innodb.doublewrite
|
mysqltest: At line 192: query 'select f1, f2 from t1' failed: ER_UNKNOWN_STORAGE_ENGINE (1286): Unknown storage engine 'InnoDB'
|
If I revert the MDEV-26626 fix, the failure goes away. The test does not fail in the 10.5 branch for me. The cause of the failure appears to be that a write of a page that the test is intentionally corrupting was missed before recovery:
10.6 106b16a5af7a8e29889e0ef8930bd2901a9ad00e |
2021-09-17 8:28:09 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=58220,58446
|
2021-09-17 8:28:09 0 [ERROR] InnoDB: Cannot apply log to [page id: space=5, page number=0] of corrupted file './test/t1.ibd'
|
At first, I was suspecting that the debug variable innodb_buf_flush_list_now is not working reliably, but the function buf_flush_sync() does appear to write out all pages from the buffer pool before the server was killed and restarted.
The failure has not occured on any CI system yet, and it does not fail reliably for me when not using rr. Initially, it did fail without rr for the strict_full_crc32 combinations, for the 32-bit build.
Attachments
Issue Links
- relates to
-
MDEV-27014 InnoDB fails to restore page 0 from the doublewrite buffer
- Closed
-
MDEV-24626 Remove synchronous write of page0 and flushing file during file creation
- Closed
-
MDEV-26626 InnoDB fails to advance the log checkpoint
- Closed