summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2021-11-10 11:35:19 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2021-11-10 11:35:19 +0530
commit3480c3f95b27c8f3e6f4ecbe6262e5b80109c0d4 (patch)
tree5cd56f17c1bee61b4fec8c30b2b25738f41d66fd
parent3989d3800d328bf84b922fe527890cf68eb1c138 (diff)
downloadmariadb-git-bb-10.6-MDEV-27006.tar.gz
MDEV-26121 [Note] InnoDB: Resetting invalid pagebb-10.6-MDEV-27006
In dict_index_t::clear(), InnoDB frees all the page except root page. root page leaf segment has reset and does reinitialize again. t in fseg_create(), we do have the assumption that only FIL_PAGE_TYPE_TRX_SYS or FIL_PAGE_TYPE_TRX_SYS page should be re-created for non-full-crc32 format. This assumption is wrong in case of rollback of bulk insert operation.
-rw-r--r--storage/innobase/fsp/fsp0fsp.cc13
1 files changed, 1 insertions, 12 deletions
diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc
index ac70923b446..feef88bd7ae 100644
--- a/storage/innobase/fsp/fsp0fsp.cc
+++ b/storage/innobase/fsp/fsp0fsp.cc
@@ -1709,18 +1709,7 @@ fseg_create(fil_space_t *space, ulint byte_offset, mtr_t *mtr,
mtr->x_lock_space(space);
ut_d(space->modify_check(*mtr));
- if (block) {
- ut_ad(block->page.id().space() == space->id);
-
- if (!space->full_crc32()) {
- fil_block_check_type(*block, block->page.id()
- == page_id_t(TRX_SYS_SPACE,
- TRX_SYS_PAGE_NO)
- ? FIL_PAGE_TYPE_TRX_SYS
- : FIL_PAGE_TYPE_SYS,
- mtr);
- }
- }
+ ut_ad(!block || block->page.id().space() == space->id);
if (!has_done_reservation
&& !fsp_reserve_free_extents(&n_reserved, space, 2,