Skip to content

Commit

Permalink
MDEV-13451 Assertion `!recv_no_ibuf_operations' failed in ibuf_page_l…
Browse files Browse the repository at this point in the history
…ow()

During InnoDB startup, change buffer merge operations are prohibited
before recv_apply_hashed_log_recs(true), which performs the last phase
of redo log apply. Before this call, ibuf_init_at_db_start() would be
invoked, and it could trigger the debug assertion.

ibuf_init_at_db_start(): Do not declare the mini-transaction as
"inside change buffer", because nothing is being written in the
mini-transaction. The purpose of this function is only to initialize
the memory data structures from the persistent data structures.
  • Loading branch information
dr-m committed Aug 7, 2017
1 parent f701ac6 commit a33220f
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions storage/innobase/ibuf/ibuf0ibuf.cc
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,6 @@ ibuf_init_at_db_start(void)

fseg_n_reserved_pages(header_page + IBUF_HEADER + IBUF_TREE_SEG_HEADER,
&n_used, &mtr);
ibuf_enter(&mtr);

ut_ad(n_used >= 2);

Expand All @@ -556,7 +555,7 @@ ibuf_init_at_db_start(void)
mutex_exit(&ibuf_mutex);

ibuf->empty = page_is_empty(root);
ibuf_mtr_commit(&mtr);
mtr.commit();

ibuf->index = dict_mem_index_create(
"innodb_change_buffer", "CLUST_IND",
Expand Down

0 comments on commit a33220f

Please sign in to comment.