• Thirunarayanan Balathandayuthapani's avatar
    MDEV-17289 Multi-pass recovery fails to apply some redo log records · 2af67150
    Thirunarayanan Balathandayuthapani authored
    This is a regression caused by
    commit 73af8af0
    (MDEV-15325 Incomplete validation of missing tablespace during recovery).
    
    If the recv_sys->addr_hash hash table ran out of memory, we would
    have to do crash recovery in multiple passes. If some tablespaces were
    missing, after the MDEV-15325 fix we would rescan the remaining redo log.
    But, we could incorrectly reset the "rescan" flag. Because of this, we
    would fail to apply some of the oldest redo log records to the data files.
    (The recv_sys->addr_hash would only contain records from the latest
    redo log scan batch.)
    
    Fix:
    
    After checking for missing tablespaces, reset the flag rescan=true,
    so that all redo log records will be re-read and applied.
    2af67150
log0recv.cc 108 KB