diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-09-09 09:05:26 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-09-09 09:05:26 +0300 |
commit | 6e3bd663d0fc669ffa6ab4c5f5aa57a1244ac555 (patch) | |
tree | 2d275b7bedafefeeed71b2d77afbe2bb16dcaad9 /win | |
parent | eb2f2c1e5f5989a225154f6a7eb3487fb722f65e (diff) | |
download | mariadb-git-6e3bd663d0fc669ffa6ab4c5f5aa57a1244ac555.tar.gz |
MDEV-25776 Race conditions in buf_pool.page_hash around buf_pool.watchbb-10.5-MDEV-25776
Any modification of buf_pool.page_hash is supposed to be protected
by buf_pool.mutex and page_hash_latch::write_lock(). The buffer pool
watch mechanism of the InnoDB change buffer was violating that
ever since commit b1ab211dee599eabd9a5b886fafa3adea29ae041 (MDEV-15053).
buf_pool_t::watch_set(): Extend the critical section of buf_pool.mutex.
buf_pool_t::watch_unset(): Define non-inline, because
calls are infrequent and this function became larger.
If we have to detach a sentinel from page_hash,
do it while holding both the mutex and the exclusive hash latch.
buf_pool_t::watch_remove(): Assert that the mutex is being held.
buf_page_init_for_read(): Remove some work-arounds for
previously encountered race conditions related to buf_pool.watch.
Diffstat (limited to 'win')
0 files changed, 0 insertions, 0 deletions