diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-04-11 10:22:40 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-04-11 10:22:40 +0300 |
commit | 7bccf3dd744b6e85b69629c1e18730e77df503a2 (patch) | |
tree | 460960e03b04642b5ba382eccbd633f1bc739da1 /storage/innobase/include | |
parent | 5a4a37076db1f3a77a40c9636b96eef5625b3d81 (diff) | |
download | mariadb-git-7bccf3dd744b6e85b69629c1e18730e77df503a2.tar.gz |
MDEV-28274 Assertion s <= READ_FIX failed in buf_page_t::set_state
buf_page_t::set_state(): Relax a debug assertion. It is fine to update
a read-fixed block descriptor to be both read-fixed and buffer-fixed.
buf_pool_t::watch_unset(): Fix some incorrect logic that was implemented
in commit e9e6db93550aee9e6567b94ab928da9b13050e98.
Thanks to Elena Stepanova for the test case.
Diffstat (limited to 'storage/innobase/include')
-rw-r--r-- | storage/innobase/include/buf0buf.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h index 7c372379ad3..9e341546c6a 100644 --- a/storage/innobase/include/buf0buf.h +++ b/storage/innobase/include/buf0buf.h @@ -2009,7 +2009,8 @@ inline void buf_page_t::set_state(uint32_t s) { mysql_mutex_assert_owner(&buf_pool.mutex); ut_ad(s <= REMOVE_HASH || s >= UNFIXED); - ut_ad(s <= READ_FIX); + ut_ad(s < WRITE_FIX); + ut_ad(s <= READ_FIX || zip.fix == READ_FIX); zip.fix= s; } |