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