• Marko Mäkelä's avatar
    Bug#12584374 LOCK_VALIDATE TRIPS ASSERTION !BLOCK->PAGE.FILE_PAGE_WAS_FREE · af3eff8d
    Marko Mäkelä authored
    Fix a deadlock in the initial patch. lock_validate() must not hold the
    lock system mutex while s-latching a block, because some functions,
    such as lock_rec_convert_impl_to_expl(), may be already holding an x-latch
    on the block that lock_validate() is interested in while attempting to
    acquire the lock system mutex.
    
    This deadlock was not caught by UNIV_SYNC_DEBUG because of
    buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK).
    af3eff8d
lock0lock.c 159 KB