diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-02-17 10:13:32 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-02-17 10:13:32 +0200 |
commit | fc876980480616613f8eb8125a9b23af7ddf6d7e (patch) | |
tree | 85034326e88dbc0fdfe4a5f5b52c3e37be7677bc /storage/innobase/trx/trx0undo.cc | |
parent | 5874aac71f1635ba88636065ed0681b7bf16bd89 (diff) | |
download | mariadb-git-fc876980480616613f8eb8125a9b23af7ddf6d7e.tar.gz |
MDEV-12353: Write less log for BLOB pages
fsp_page_create(): Always initialize the page. The logic to
avoid initialization was made redundant and should have been removed
in mysql/mysql-server@ce0a1e85e24e48b8171f767b44330da635a6ea0a
(MySQL 5.7.5).
btr_store_big_rec_extern_fields(): Remove the redundant initialization
of FIL_PAGE_PREV and FIL_PAGE_NEXT. An INIT_PAGE record will have
been written already. Only write the ROW_FORMAT=COMPRESSED page payload
from FIL_PAGE_DATA onwards. We were unnecessarily writing from
FIL_PAGE_TYPE onwards, which caused an assertion failure on recovery:
recv_sys_t::alloc(size_t): Assertion 'len <= srv_page_size' failed
when running the following tests:
./mtr --no-reorder innodb_zip.blob,4k innodb_zip.bug56680,4k
Diffstat (limited to 'storage/innobase/trx/trx0undo.cc')
-rw-r--r-- | storage/innobase/trx/trx0undo.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index 9d1856a0b27..afe6440c5b7 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -553,7 +553,7 @@ buf_block_t* trx_undo_add_page(trx_undo_t* undo, mtr_t* mtr) new_block = fseg_alloc_free_page_general( TRX_UNDO_SEG_HDR + TRX_UNDO_FSEG_HEADER + header_block->frame, - undo->top_page_no + 1, FSP_UP, TRUE, mtr, mtr); + undo->top_page_no + 1, FSP_UP, true, mtr, mtr); rseg->space->release_free_extents(n_reserved); |