MDEV-33363 CI failure: innodb.import_corrupted: Assertion failed: oldest_lsn >...
MDEV-33363 CI failure: innodb.import_corrupted: Assertion failed: oldest_lsn > log_sys.last_checkpoint_lsn This regression is introduced in MDEV-28708 where the MTR_LOG_NO_REDO mtrs are assigned last_checkpoint_lsn as the LSN. It causes a race with checkpoint in pending state. The concurrent checkpoint writes a checkpoint LSN of larger value after pages with older checkpoint LSN is inserted into the flush list. The next checkpoint sees the reversal in checkpoint sequence and asserts if the pages are not yet flushed. There could be several ways to solve this issue. Ideally the unlogged mtr should take the latest LSN as opposed to going behind and use the previous checkpoint LSN. It has been the older design and seems good. Also, other than the critical race, using the old checkpoint LSN adds the pages to other end of flush list overriding all existing dirty pages and looks counter intuitive.
Showing
Please register or sign in to comment