summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-11-16 12:49:51 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-11-16 12:49:51 +0200
commit079516f00efc526682aca727ac918ebf2322a16d (patch)
tree2f168513c3a823db4c1e49870934a284b91d7076
parent72afeaf8a5016256d9ed7b16c73d521b45aa5e85 (diff)
downloadmariadb-git-079516f00efc526682aca727ac918ebf2322a16d.tar.gz
MDEV-27016: Assertion 'id.page_no() < space.size' failed
buf_flush_check_neighbors(): Relax a debug assertion that could fail for the very last page(s) of a ROW_FORMAT=COMPRESSED tables using a 1024-byte or 2048-byte page size. This assertion started to fail after commit d09426f9e60fd93296464ec9eb5f9d85566437d3 (MDEV-26537) modified the .ibd file extension to occur in steps of 4096 bytes.
-rw-r--r--storage/innobase/buf/buf0flu.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc
index c503b97f776..3c234228771 100644
--- a/storage/innobase/buf/buf0flu.cc
+++ b/storage/innobase/buf/buf0flu.cc
@@ -997,7 +997,9 @@ static page_id_t buf_flush_check_neighbors(const fil_space_t &space,
page_id_t &id, bool contiguous,
bool lru)
{
- ut_ad(id.page_no() < space.size);
+ ut_ad(id.page_no() < space.size +
+ (space.physical_size() == 2048 ? 1
+ : space.physical_size() == 1024 ? 3 : 0));
/* When flushed, dirty blocks are searched in neighborhoods of this
size, and flushed along with the original page. */
const ulint s= buf_pool.curr_size / 16;