buf0buf.ic, mtr0log.ic:
Add diagnostic code to catch possible space id or page no errors in the log innobase/include/mtr0log.ic: Add diagnostic code to catch possible space id or page no errors in the log innobase/include/buf0buf.ic: Add diagnostic code to catch possible space id or page no errors in the log
This commit is contained in:
parent
d12413f6f6
commit
bc26e18dc5
@ -211,6 +211,9 @@ buf_block_align(
|
||||
|
||||
block = buf_pool_get_nth_block(buf_pool, (ptr - frame_zero)
|
||||
>> UNIV_PAGE_SIZE_SHIFT);
|
||||
ut_a(block >= buf_pool->blocks);
|
||||
ut_a(block < buf_pool->blocks + buf_pool->max_size);
|
||||
|
||||
return(block);
|
||||
}
|
||||
|
||||
@ -235,6 +238,9 @@ buf_block_align_low(
|
||||
|
||||
block = buf_pool_get_nth_block(buf_pool, (ptr - frame_zero)
|
||||
>> UNIV_PAGE_SIZE_SHIFT);
|
||||
ut_a(block >= buf_pool->blocks);
|
||||
ut_a(block < buf_pool->blocks + buf_pool->max_size);
|
||||
|
||||
return(block);
|
||||
}
|
||||
|
||||
@ -253,9 +259,9 @@ buf_frame_align(
|
||||
|
||||
frame = ut_align_down(ptr, UNIV_PAGE_SIZE);
|
||||
|
||||
ut_ad((ulint)frame
|
||||
ut_a((ulint)frame
|
||||
>= (ulint)(buf_pool_get_nth_block(buf_pool, 0)->frame));
|
||||
ut_ad((ulint)frame <= (ulint)(buf_pool_get_nth_block(buf_pool,
|
||||
ut_a((ulint)frame <= (ulint)(buf_pool_get_nth_block(buf_pool,
|
||||
buf_pool->max_size - 1)->frame));
|
||||
return(frame);
|
||||
}
|
||||
|
@ -163,6 +163,13 @@ mlog_write_initial_log_record_fast(
|
||||
space = buf_block_get_space(block);
|
||||
offset = buf_block_get_page_no(block);
|
||||
|
||||
if (space != 0 || offset > 0x8FFFFFFF) {
|
||||
fprintf(stderr,
|
||||
"InnoDB: error: buffer page pointer %lx has nonsensical space id %lu\n"
|
||||
"InnoDB: or page no %lu\n", (ulint)ptr, space, offset);
|
||||
ut_a(0);
|
||||
}
|
||||
|
||||
mach_write_to_1(log_ptr, type);
|
||||
log_ptr++;
|
||||
log_ptr += mach_write_compressed(log_ptr, space);
|
||||
|
Loading…
x
Reference in New Issue
Block a user