diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-10-30 19:06:50 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-10-30 19:06:50 +0200 |
commit | b0ff791618d97487fb7515d3f785b37f46eba132 (patch) | |
tree | 98788aedae6984f2fca64e158be099c113afd858 /mysys | |
parent | 03357ded174c13d941abc37e8c12506d75aaa52d (diff) | |
download | mariadb-git-b0ff791618d97487fb7515d3f785b37f46eba132.tar.gz |
MDEV-24054 Assertion in_LRU_list failed in buf_flush_try_neighbors()
buf_flush_try_neighbors(): Before invoking buf_page_t::ready_for_flush(),
check that the freshly looked up buf_pool.page_hash entry actually is
a buffer page and not a buf_pool.watch[] sentinel for purge buffering.
This race condition was introduced in MDEV-15053
(commit b1ab211dee599eabd9a5b886fafa3adea29ae041).
It is rather hard to hit this bug, because
buf_flush_check_neighbors() already checked the condition.
The problem exists if buf_pool.watch_set() was invoked for
a page in the range after the check in buf_flush_check_neighbor()
had been finished.
Diffstat (limited to 'mysys')
0 files changed, 0 insertions, 0 deletions