• Marko Mäkelä's avatar
    MDEV-30180 Server hang with innodb_undo_log_truncate=ON · c4d79399
    Marko Mäkelä authored
    trx_purge_truncate_history(): In case of an apparent conflict with
    buf_pool_t::release_freed_page(), always momentarily acquire
    buf_pool.mutex, to let the thread that is holding it and waiting for
    buf_pool.flush_list_mutex to proceed.
    
    The fix in commit c410f7aa was
    insufficient, because simple yielding would not necessarily let
    the conflicting thread to acquire buf_pool.flush_list_mutex.
    
    This hang was reported and the fix tested by Axel Schwenke.
    c4d79399
trx0purge.cc 40.3 KB