mariadb/storage/innobase/lock
Vlad Lesin 2c381d8cf6 MDEV-17843 Assertion `page_rec_is_leaf(rec)' failed in lock_rec_queue_validate upon SHOW ENGINE INNODB STATUS
lock_validate() accumulates page ids under locked lock_sys->mutex, then
releases the latch, and invokes lock_rec_block_validate() for each page.
Some other thread has ability to add/remove locks and change pages
between releasing the latch in lock_validate() and acquiring it in
lock_rec_validate_page().

lock_rec_validate_page() can invoke lock_rec_queue_validate() for
non-locked supremum, what can cause ut_ad(page_rec_is_leaf(rec)) failure
in lock_rec_queue_validate().

The fix is to invoke lock_rec_queue_validate() only for locked records
in lock_rec_validate_page().

The error message in lock_rec_block_validate() is not necessary as
BUF_GET_POSSIBLY_FREED mode is used to get block from buffer pool, and
this is not error if a block was evicted.

The test case would require new debug sync point. I think it's not
necessary as the fixed code is debug-only.
2022-05-04 12:51:28 +03:00
..
lock0iter.cc Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
lock0lock.cc MDEV-17843 Assertion `page_rec_is_leaf(rec)' failed in lock_rec_queue_validate upon SHOW ENGINE INNODB STATUS 2022-05-04 12:51:28 +03:00
lock0prdt.cc MDEV-27992 DELETE fails to delete record after blocking is released 2022-03-07 16:42:05 +03:00
lock0wait.cc MDEV-23328 Server hang due to Galera lock conflict resolution 2021-10-29 10:00:17 +03:00