mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled
This commit is contained in:
parent
9a817bea5a
commit
e1cb1ca6fe
56 changed files with 830 additions and 208 deletions
|
|
@ -299,7 +299,9 @@ btr_page_alloc_for_ibuf(
|
|||
|
||||
new_page = buf_page_get(dict_tree_get_space(tree), node_addr.page,
|
||||
RW_X_LATCH, mtr);
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(new_page, SYNC_TREE_NODE_NEW);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
flst_remove(root + PAGE_HEADER + PAGE_BTR_IBUF_FREE_LIST,
|
||||
new_page + PAGE_HEADER + PAGE_BTR_IBUF_FREE_LIST_NODE,
|
||||
|
|
@ -357,7 +359,9 @@ btr_page_alloc(
|
|||
|
||||
new_page = buf_page_get(dict_tree_get_space(tree), new_page_no,
|
||||
RW_X_LATCH, mtr);
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(new_page, SYNC_TREE_NODE_NEW);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
return(new_page);
|
||||
}
|
||||
|
|
@ -663,8 +667,9 @@ btr_create(
|
|||
ibuf_hdr_frame = fseg_create(space, 0,
|
||||
IBUF_HEADER + IBUF_TREE_SEG_HEADER, mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(ibuf_hdr_frame, SYNC_TREE_NODE_NEW);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
ut_ad(buf_frame_get_page_no(ibuf_hdr_frame)
|
||||
== IBUF_HEADER_PAGE_NO);
|
||||
/* Allocate then the next page to the segment: it will be the
|
||||
|
|
@ -689,7 +694,9 @@ btr_create(
|
|||
|
||||
page_no = buf_frame_get_page_no(frame);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(frame, SYNC_TREE_NODE_NEW);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
if (type & DICT_IBUF) {
|
||||
/* It is an insert buffer tree: initialize the free list */
|
||||
|
|
@ -704,7 +711,9 @@ btr_create(
|
|||
mtr);
|
||||
/* The fseg create acquires a second latch on the page,
|
||||
therefore we must declare it: */
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(frame, SYNC_TREE_NODE_NEW);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
}
|
||||
|
||||
/* Create a new index page on the the allocated segment page */
|
||||
|
|
@ -1517,7 +1526,9 @@ func_start:
|
|||
|
||||
ut_ad(mtr_memo_contains(mtr, dict_tree_get_lock(tree),
|
||||
MTR_MEMO_X_LOCK));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(dict_tree_get_lock(tree), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
page = btr_cur_get_page(cursor);
|
||||
|
||||
|
|
|
|||
|
|
@ -3146,8 +3146,10 @@ btr_store_big_rec_extern_fields(
|
|||
prev_page_no,
|
||||
RW_X_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(prev_page,
|
||||
SYNC_EXTERN_STORAGE);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
mlog_write_ulint(prev_page + FIL_PAGE_DATA
|
||||
+ BTR_BLOB_HDR_NEXT_PAGE_NO,
|
||||
|
|
@ -3182,9 +3184,9 @@ btr_store_big_rec_extern_fields(
|
|||
rec_page = buf_page_get(space_id,
|
||||
buf_frame_get_page_no(data),
|
||||
RW_X_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(rec_page, SYNC_NO_ORDER_CHECK);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
mlog_write_ulint(data + local_len + BTR_EXTERN_LEN, 0,
|
||||
MLOG_4BYTES, &mtr);
|
||||
mlog_write_ulint(data + local_len + BTR_EXTERN_LEN + 4,
|
||||
|
|
@ -3276,9 +3278,9 @@ btr_free_externally_stored_field(
|
|||
|
||||
rec_page = buf_page_get(buf_frame_get_space_id(data),
|
||||
buf_frame_get_page_no(data), RW_X_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(rec_page, SYNC_NO_ORDER_CHECK);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
space_id = mach_read_from_4(data + local_len
|
||||
+ BTR_EXTERN_SPACE_ID);
|
||||
|
||||
|
|
@ -3321,9 +3323,9 @@ btr_free_externally_stored_field(
|
|||
}
|
||||
|
||||
page = buf_page_get(space_id, page_no, RW_X_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(page, SYNC_EXTERN_STORAGE);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
next_page_no = mach_read_from_4(page + FIL_PAGE_DATA
|
||||
+ BTR_BLOB_HDR_NEXT_PAGE_NO);
|
||||
|
||||
|
|
@ -3501,9 +3503,9 @@ btr_copy_externally_stored_field(
|
|||
mtr_start(&mtr);
|
||||
|
||||
page = buf_page_get(space_id, page_no, RW_S_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(page, SYNC_EXTERN_STORAGE);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
blob_header = page + offset;
|
||||
|
||||
part_len = btr_blob_get_part_len(blob_header);
|
||||
|
|
|
|||
|
|
@ -227,9 +227,9 @@ btr_pcur_restore_position(
|
|||
if (buf_page_optimistic_get(latch_mode, page,
|
||||
cursor->modify_clock, mtr)) {
|
||||
cursor->pos_state = BTR_PCUR_IS_POSITIONED;
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(page, SYNC_TREE_NODE);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
if (cursor->rel_pos == BTR_PCUR_ON) {
|
||||
|
||||
cursor->latch_mode = latch_mode;
|
||||
|
|
|
|||
|
|
@ -93,8 +93,10 @@ btr_search_check_free_space_in_heap(void)
|
|||
hash_table_t* table;
|
||||
mem_heap_t* heap;
|
||||
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)
|
||||
&& !rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED));
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
table = btr_search_sys->hash_index;
|
||||
|
||||
|
|
@ -194,8 +196,10 @@ btr_search_info_update_hash(
|
|||
ulint n_unique;
|
||||
int cmp;
|
||||
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)
|
||||
&& !rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED));
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
index = cursor->index;
|
||||
|
||||
|
|
@ -317,10 +321,12 @@ btr_search_update_block_hash_info(
|
|||
buf_block_t* block, /* in: buffer block */
|
||||
btr_cur_t* cursor) /* in: cursor */
|
||||
{
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)
|
||||
&& !rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_SHARED)
|
||||
|| rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED));
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&((buf_block_t*) block)->lock, RW_LOCK_SHARED)
|
||||
|| rw_lock_own(&((buf_block_t*) block)->lock, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
ut_ad(cursor);
|
||||
|
||||
info->last_hash_succ = FALSE;
|
||||
|
|
@ -398,9 +404,11 @@ btr_search_update_hash_ref(
|
|||
dulint tree_id;
|
||||
|
||||
ut_ad(cursor->flag == BTR_CUR_HASH_FAIL);
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_SHARED)
|
||||
|| rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
if (block->is_hashed
|
||||
&& (info->n_hash_potential > 0)
|
||||
&& (block->curr_n_fields == info->n_fields)
|
||||
|
|
@ -419,7 +427,9 @@ btr_search_update_hash_ref(
|
|||
fold = rec_fold(rec, block->curr_n_fields,
|
||||
block->curr_n_bytes, tree_id);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
ha_insert_for_fold(btr_search_sys->hash_index, fold, rec);
|
||||
}
|
||||
|
|
@ -439,8 +449,10 @@ btr_search_info_update_slow(
|
|||
ulint* params;
|
||||
ulint* params2;
|
||||
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)
|
||||
&& !rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED));
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
block = buf_block_align(btr_cur_get_rec(cursor));
|
||||
|
||||
|
|
@ -762,7 +774,9 @@ btr_search_guess_on_hash(
|
|||
|
||||
can_only_compare_to_cursor_rec = FALSE;
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(page, SYNC_TREE_NODE_FROM_HASH);
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
}
|
||||
|
||||
block = buf_block_align(page);
|
||||
|
|
@ -910,10 +924,12 @@ btr_search_drop_page_hash_index(
|
|||
ulint n_recs;
|
||||
ulint* folds;
|
||||
ulint i;
|
||||
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)
|
||||
&& !rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED));
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
rw_lock_s_lock(&btr_search_latch);
|
||||
|
||||
block = buf_block_align(page);
|
||||
|
|
@ -927,9 +943,11 @@ btr_search_drop_page_hash_index(
|
|||
|
||||
table = btr_search_sys->hash_index;
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_SHARED)
|
||||
|| rw_lock_own(&(block->lock), RW_LOCK_EX)
|
||||
|| (block->buf_fix_count == 0));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
n_fields = block->curr_n_fields;
|
||||
n_bytes = block->curr_n_bytes;
|
||||
|
|
@ -1029,8 +1047,10 @@ btr_search_drop_page_hash_when_freed(
|
|||
|
||||
page = buf_page_get(space, page_no, RW_S_LATCH, &mtr);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_page_dbg_add_level(page, SYNC_TREE_NODE_FROM_HASH);
|
||||
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
btr_search_drop_page_hash_index(page);
|
||||
|
||||
mtr_commit(&mtr);
|
||||
|
|
@ -1070,9 +1090,11 @@ btr_search_build_page_hash_index(
|
|||
block = buf_block_align(page);
|
||||
table = btr_search_sys->hash_index;
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_SHARED)
|
||||
|| rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
rw_lock_s_lock(&btr_search_latch);
|
||||
|
||||
|
|
@ -1235,8 +1257,10 @@ btr_search_move_or_delete_hash_entries(
|
|||
block = buf_block_align(page);
|
||||
new_block = buf_block_align(new_page);
|
||||
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX)
|
||||
&& rw_lock_own(&(new_block->lock), RW_LOCK_EX));
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
ut_ad(rw_lock_own(&(new_block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
rw_lock_s_lock(&btr_search_latch);
|
||||
|
||||
|
|
@ -1296,7 +1320,9 @@ btr_search_update_hash_on_delete(
|
|||
|
||||
block = buf_block_align(rec);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
if (!block->is_hashed) {
|
||||
|
||||
|
|
@ -1337,7 +1363,9 @@ btr_search_update_hash_node_on_insert(
|
|||
|
||||
block = buf_block_align(rec);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
if (!block->is_hashed) {
|
||||
|
||||
|
|
@ -1398,7 +1426,9 @@ btr_search_update_hash_on_insert(
|
|||
|
||||
block = buf_block_align(rec);
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX));
|
||||
#endif /* UNIV_SYNC_DEBUG */
|
||||
|
||||
if (!block->is_hashed) {
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue