MDEV-27414 Server may hang when innodb_undo_log_truncate=ON
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.
Showing
Please register or sign in to comment