• mariadb-DebarunBanerjee's avatar
    MDEV-33363 CI failure: innodb.import_corrupted: Assertion failed: oldest_lsn >... · 4039d860
    mariadb-DebarunBanerjee authored
    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.
    4039d860
mtr0mtr.cc 46.9 KB