mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
90b95c6149
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
|
||
---|---|---|
.. | ||
buf0buddy.cc | ||
buf0buf.cc | ||
buf0checksum.cc | ||
buf0dblwr.cc | ||
buf0dump.cc | ||
buf0flu.cc | ||
buf0lru.cc | ||
buf0rea.cc |