Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6, 10.11, 11.4, 11.8
-
None
Description
innodb.doublewrite_debug '16k,strict_full_crc32' w58 [ fail ]
|
Test ended at 2025-01-15 13:37:20
|
CURRENT_TEST: innodb.doublewrite_debug
|
mysqltest: At line 91: query 'select f1, f2 from t1' failed: ER_UNKNOWN_STORAGE_ENGINE (1286): Unknown storage engine 'InnoDB'
|
The result from queries just before the failure was:
|
< snip >
|
begin;
|
insert into t1 values (6, repeat('%', 400));
|
# Make the first page dirty for system tablespace
|
set global innodb_saved_page_number_debug = 0;
|
set global innodb_fil_make_page_dirty_debug = 0;
|
# Make the second page dirty for system tablespace
|
set global innodb_saved_page_number_debug = 1;
|
set global innodb_fil_make_page_dirty_debug = 0;
|
set global innodb_buf_flush_list_now = 1;
|
# Kill the server
|
# Make the 1st page (page_no=0) and 2nd page (page_no=1)
|
# of the system tablespace all zeroes.
|
# restart
|
NOT FOUND /InnoDB: Recovered page \[page id: space=0, page number=0\]/ in mysqld.1.err
|
NOT FOUND /InnoDB: Recovered page \[page id: space=0, page number=1\]/ in mysqld.1.err
|
check table t1;
|
Table Op Msg_type Msg_text
|
test.t1 check Error Unknown storage engine 'InnoDB'
|
test.t1 check error Corrupt
|
select f1, f2 from t1;
|
More results from queries before failure can be found in /home/buildbot/amd64-debian-11-msan-clang-16/build/mysql-test/var/58/log/doublewrite_debug.log
|
- saving '/home/buildbot/amd64-debian-11-msan-clang-16/build/mysql-test/var/58/log/innodb.doublewrite_debug-16k,strict_full_crc32/' to '/home/buildbot/amd64-debian-11-msan-clang-16/build/mysql-test/var/log/innodb.doublewrite_debug-16k,strict_full_crc32/'
|
***Warnings generated in error logs during shutdown after running tests: innodb.doublewrite_debug
|
2025-01-15 13:37:19 0 [ERROR] InnoDB: The data file './ibdata1' has the wrong space ID. It should be 0, but 0 was found
|
2025-01-15 13:37:19 0 [ERROR] InnoDB: Plugin initialization aborted at srv0start.cc[1370] with error Data structure corruption
|
2025-01-15 13:37:19 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
|
Downloaded the data directory from https://buildbot.mariadb.org/#/builders/640/builds/8527/steps/7/logs/stdio
Looks like ibdata1 page 0 and 1 as full of zeroes as expected. But in dblwr, we don't have
page 0 during find_page(). buf_dblwr_t::init_or_load_pages() fails to load page0 since the page lsn is less than checkpoint lsn.
From test case, it looks like:
set global innodb_buf_flush_list_now = 1;
|
|
--let CLEANUP_IF_CHECKPOINT=drop table t1, unexpected_checkpoint;
|
--source ../include/no_checkpoint_end.inc
|
we're making sure that there is no checkpoint happened. May be we failed to flush the page0 into doublewrite buffer. I tried to repeat the scenario many times and failed.