mariadb/storage/innobase/buf
mariadb-DebarunBanerjee 90b95c6149 MDEV-33543 Server hang caused by InnoDB change buffer
Issue: When getting a page (buf_page_get_gen) with no latch option
(RW_NO_LATCH), the caller is not expected to follow the B-tree latching
order. However in buf_page_get_low we try to acquire shared page latch
unconditionally to wait for a page that is being loaded by another
thread concurrently. In general it could lead to latch order violation
and deadlock.

Currently it affects the change buffer insert path btr_latch_prev()
which tries to load the previous page out of order with RW_NO_LATCH and
two concurrent inserts into IBUF tree cause deadlock. This problem is
introduced in 10.6 by following commit.
commit 9436c778c3 (MDEV-27058)

Fix: While trying to latch a page with RW_NO_LATCH, always use the
"*lock_try" interface and retry operation on failure after unfixing the
page.
2024-05-02 17:07:01 +05:30
..
buf0buddy.cc MDEV-27891: SIGSEGV in InnoDB buffer pool resize 2022-03-07 13:36:18 +11:00
buf0buf.cc MDEV-33543 Server hang caused by InnoDB change buffer 2024-05-02 17:07:01 +05:30
buf0checksum.cc MDEV-25105 Remove innodb_checksum_algorithm values none,innodb,... 2021-03-11 12:46:18 +02:00
buf0dblwr.cc Merge 10.5 into 10.6 2024-01-17 13:35:05 +02:00
buf0dump.cc MDEV-32983 cosmetic improvement on path separator near ib_buffer_pool 2024-01-22 16:56:00 +11:00
buf0flu.cc Merge 10.5 into 10.6 2024-03-27 15:00:56 +02:00
buf0lru.cc MDEV-33613 InnoDB may still hang when temporarily running out of buffer pool 2024-03-22 14:17:39 +02:00
buf0rea.cc Merge 10.5 into 10.6 2024-02-13 20:42:59 +02:00