diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-02 17:33:03 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-02 17:33:03 +0300 |
commit | 22f935d6daa70a21a3f640261fcf8c9dfb259250 (patch) | |
tree | 5ecedcada8aa3fa0da7f8a7fe46bf647f8aef50b | |
parent | 5909e0ec31f089e3677f7177e991dffbfb96a4e7 (diff) | |
download | mariadb-git-22f935d6daa70a21a3f640261fcf8c9dfb259250.tar.gz |
MDEV-28731 Race condition on log checkpoint
mtr_t::modify(): Set the m_made_dirty flag if needed,
so that buf_pool_t::insert_into_flush_list() will be invoked
while holding log_sys.flush_order_mutex.
This is something that was should have been part of
commit b212f1dac284cc9b7a060f1eed2cd4604c326966 (MDEV-22107).
-rw-r--r-- | storage/innobase/mtr/mtr0mtr.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/storage/innobase/mtr/mtr0mtr.cc b/storage/innobase/mtr/mtr0mtr.cc index 2feb5a0583f..f13b677742b 100644 --- a/storage/innobase/mtr/mtr0mtr.cc +++ b/storage/innobase/mtr/mtr0mtr.cc @@ -1263,4 +1263,6 @@ void mtr_t::modify(const buf_block_t &block) } iteration.functor.found->type= static_cast<mtr_memo_type_t> (iteration.functor.found->type | MTR_MEMO_MODIFY); + if (is_block_dirtied(&block)) + m_made_dirty= true; } |