Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Cannot Reproduce
-
10.9(EOL)
-
Debian GNU/Linux Sid, x86 (32-bit) user space on AMD64, GCC 11.2.0
Description
When testing the fix of MDEV-28371 using its RQG test case on a 32-bit executable, there turned out to be a different bug, reported in CMAKE_BUILD_TYPE=RelWIthDebInfo as follows:
10.9 abe971219456b1f41923c06ff715fd4efeb02850 |
2022-04-21 14:22:17 10 [ERROR] InnoDB: Space id and page no stored in the page, read in are [page id: space=4294967294, page number=73924], should be [page id: space=4294967294, page number=1122500]
|
2022-04-21 14:22:17 0xd9567ac0 InnoDB: Assertion failure in file /mariadb/10.9/storage/innobase/fsp/fsp0fsp.cc line 1589
|
The page number difference is exactly 1<<20, a constant that occurs in the function page_id_t::fold(). This failure is independent of the MDEV-28371 fix.
There is a debug assertion in mtr_t::page_lock() that also catches this:
ut_ad(state < buf_page_t::UNFIXED ||
|
page_id_t(page_get_space_id(block->page.frame),
|
page_get_page_no(block->page.frame)) == block->page.id());
|
The cause is not obvious to me. cmake -DWITH_UBSAN=ON is not reporting anything before the crash. The test does not fail on 64-bit platforms.