• Marko Mäkelä's avatar
    MDEV-20934 Infinite loop on innodb_fast_shutdown=0 with inconsistent change buffer · d7a24017
    Marko Mäkelä authored
    Due to a data corruption bug that may have occurred a long time earlier
    (possibly involving physical backup and MySQL Bug #69122, which was
    addressed in commit f166ec71)
    it seems possible that the InnoDB change buffer might end up containing
    entries, while no buffered changes exist according to the change buffer
    bitmap pages in the .ibd files.
    
    ibuf_delete_recs(): New function, to be invoked on slow shutdown only.
    Remove all buffered changes for a specific page.
    
    ibuf_merge_or_delete_for_page(): If the change buffer bitmap is clean
    and a slow shutdown is in progress, invoke ibuf_delete_recs().
    We do not want to do that during normal operation, due to the additional
    overhead that is involved. The bitmap page should be consistent with
    the change buffer in the first place.
    d7a24017
ibuf_not_empty.test 2.96 KB