• Marko Mäkelä's avatar
    MDEV-27414 Server may hang when innodb_undo_log_truncate=ON · c410f7aa
    Marko Mäkelä authored
    trx_purge_truncate_history(): Avoid a deadlock with
    buf_pool_t::release_freed_page(). Page latches are not supposed
    to be waited for while holding a mutex like buf_pool.mutex or
    buf_pool.flush_list_mutex.
    
    This regression was caused by
    commit aaef2e1d (MDEV-27058).
    Before that, trx_purge_truncate_history() would buffer-fix the block,
    release buf_pool.flush_list_mutex, and then wait for the
    exclusive page latch.
    
    This bug led to occasional failures of the test
    innodb.undo_truncate_recover.
    c410f7aa
trx0purge.cc 37 KB