The stack trace definitely points to MDEV-515. The problem happens on the rollback of client disconnect. It was not obvious to me in the description that the client has to be disconnected. A minimal mtr test case (with explicit ROLLBACK instead of an implicit one on disconnect) would have been much more obvious. I can repeat this with the following change to an existing test case:
diff --git a/mysql-test/suite/innodb/t/insert_into_empty.test b/mysql-test/suite/innodb/t/insert_into_empty.test
|
index 8b885cb5b4f..e903b819928 100644
|
--- a/mysql-test/suite/innodb/t/insert_into_empty.test
|
+++ b/mysql-test/suite/innodb/t/insert_into_empty.test
|
@@ -193,3 +193,16 @@ CREATE TABLE t (i INT) ENGINE=InnoDB PARTITION BY HASH (i) PARTITIONS 2;
|
INSERT INTO t VALUES (0);
|
INSERT INTO t VALUES (1),(0),(1);
|
DROP TABLE t;
|
+
|
+--echo #
|
+--echo # MDEV-26121 Resetting invalid page [... 3] type 17855 to 6
|
+--echo #
|
+SET @save_checksum_algorithm= @@GLOBAL.innodb_checksum_algorithm;
|
+SET GLOBAL innodb_checksum_algorithm=crc32;
|
+CREATE TABLE t(i INT) ENGINE=InnoDB;
|
+BEGIN;
|
+INSERT INTO t VALUES(0);
|
+ROLLBACK;
|
+DROP TABLE t;
|
+
|
+--echo # End of 10.6 tests
|
diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc
|
index ac70923b446..8d4b8f5226b 100644
|
--- a/storage/innobase/fsp/fsp0fsp.cc
|
+++ b/storage/innobase/fsp/fsp0fsp.cc
|
@@ -785,7 +785,7 @@ Any other pages were written with uninitialized bytes in FIL_PAGE_TYPE.
|
ATTRIBUTE_COLD
|
void fil_block_reset_type(const buf_block_t& block, ulint type, mtr_t* mtr)
|
{
|
- ib::info()
|
+ ib::warn()
|
<< "Resetting invalid page " << block.page.id() << " type "
|
<< fil_page_get_type(block.frame) << " to " << type << ".";
|
mtr->write<2>(block, block.frame + FIL_PAGE_TYPE, type);
|
innodb.insert_into_empty 'debug,innodb' [ fail ] Found warnings/errors in server log file!
|
Test ended at 2021-11-04 10:00:56
|
line
|
2021-11-04 10:00:56 4 [Warning] InnoDB: Resetting invalid page [page id: space=17, page number=3] type 17855 to 6.
|
I think that the message indeed can be promoted to a warning.
Also the test case variant with a duplicate key error during a multi-row INSERT is executing rollback and issuing the message there.
Leads to:
10.7.0 52505bf20de0ce77a5c0b0a74af021051987bb0d (Debug)
10.7.0-dbg>INSERT INTO t VALUES ('','',''),('','','');
ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'
And:
10.7.0 52505bf20de0ce77a5c0b0a74af021051987bb0d (Debug)
2021-08-21 10:15:09 4 [Note] InnoDB: Resetting invalid page [page id: space=5, page number=3] type 17855 to 6.