• Marko Mäkelä's avatar
    MDEV-25072: Livelock due to innodb_change_buffering_debug · 147a317e
    Marko Mäkelä authored
    buf_page_get_low(): Do not try to re-evict the page if it is
    multiply buffer-fixed.
    
    In commit 7cffb5f6 (MDEV-23399)
    a livelock was introduced. If multiple threads are concurrently
    requesting the same secondary index leaf page in buf_page_get_low()
    and innodb_change_buffering_debug is set, all threads would try
    to evict the page in a busy loop, never succeeding because the
    block is buffer-fixed by other threads.
    
    Thanks to Roel Van de Paar for reporting the original failure and
    Elena Stepanova for producing an "rr replay" trace.
    147a317e
buf0buf.cc 135 KB