summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-11-17 15:07:37 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2020-11-17 15:07:37 +0200
commit4a3d59788877a7146059a00d516e8ae36b486899 (patch)
tree0b05079a1409d2b0729b298b8c806b861e151d18
parentab4f743610dd65702c9d511475a753d935649498 (diff)
downloadmariadb-git-bb-10.2-MDEV-24188.tar.gz
MDEV-24188 fixup: Correct the FindBlockX predicatebb-10.2-MDEV-24188
FindBlockX::operator(): Return false if an x-latched block is found. Previously, we were incorrectly returning false if the block was in the log, only if not x-latched. It is unknown if this mistake had any visible impact. Often, we would register both MTR_MEMO_BUF_FIX and MTR_MEMO_PAGE_X_FIX for the same block.
-rw-r--r--storage/innobase/mtr/mtr0mtr.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/storage/innobase/mtr/mtr0mtr.cc b/storage/innobase/mtr/mtr0mtr.cc
index f966d4c74c6..fefc0687ddb 100644
--- a/storage/innobase/mtr/mtr0mtr.cc
+++ b/storage/innobase/mtr/mtr0mtr.cc
@@ -804,7 +804,7 @@ mtr_t::release_free_extents(ulint n_reserved)
space->release_free_extents(n_reserved);
}
-/** Find out whether a block was X-latched by the mini-transaction */
+/** Find out whether a block was not X-latched by the mini-transaction */
struct FindBlockX
{
const buf_block_t &block;
@@ -814,7 +814,7 @@ struct FindBlockX
/** @return whether the block was not found x-latched */
bool operator()(const mtr_memo_slot_t *slot) const
{
- return slot->object != &block || slot->type == MTR_MEMO_PAGE_X_FIX;
+ return slot->object != &block || slot->type != MTR_MEMO_PAGE_X_FIX;
}
};