• Thirunarayanan Balathandayuthapani's avatar
    MDEV-34156 InnoDB fails to apply the redo log for compressed tablespace · 5b39ded7
    Thirunarayanan Balathandayuthapani authored
    Problem:
    =======
    During recovery, InnoDB fails to apply the redo log for
    compressed tablespace. The reason is that InnoDB assumes
    that pages has been freed while applying the redo log for it.
    During multiple scan of redo logs, InnoDB stores the freed
    page information when it have sufficient buffer pool pages.
    Once it ran out of memory, InnoDB doesn't store freed page
    information. But InnoDB assigns the freed page ranges to tablespace
    in recv_init_crash_recovery_spaces() even though
    InnoDB doesn't have complete freed range information.
    While applying the redo log, InnoDB wrongly assumes that page
    has been freed and it could lead to corruption of tablespace.
    This issue is caused by commit 941af1fa (MDEV-31803)
    and commit 2f9e2647 (MDEV-29911).
    
    Solution:
    ========
    During recovery, set recovery size and freed page information
    for all tablespace irrespective of memory.
    5b39ded7
log0recv.cc 149 KB