mirror of
https://github.com/MariaDB/server.git
synced 2025-09-03 20:43:11 +03:00
Bug#16859867 INNODB_BUG14529666 FAILS SPORADICALLY IN VALGRIND
i_s_innodb_buffer_page_get_info(): Do not read the buffer block frame contents of read-fixed blocks, because it may be invalid or uninitialized. When we are going to decompress or read a block, we will put it into buf_pool->page_hash and buf_pool->LRU, read-fix the block and release the mutexes for the duration of the reading or decompression. rb#2500 approved by Jimmy Yang
This commit is contained in:
@@ -2890,6 +2890,16 @@ i_s_innodb_buffer_page_get_info(
|
|||||||
|
|
||||||
page_info->freed_page_clock = bpage->freed_page_clock;
|
page_info->freed_page_clock = bpage->freed_page_clock;
|
||||||
|
|
||||||
|
switch (buf_page_get_io_fix(bpage)) {
|
||||||
|
case BUF_IO_NONE:
|
||||||
|
case BUF_IO_WRITE:
|
||||||
|
case BUF_IO_PIN:
|
||||||
|
break;
|
||||||
|
case BUF_IO_READ:
|
||||||
|
page_info->page_type = I_S_PAGE_TYPE_UNKNOWN;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (page_info->page_state == BUF_BLOCK_FILE_PAGE) {
|
if (page_info->page_state == BUF_BLOCK_FILE_PAGE) {
|
||||||
const buf_block_t*block;
|
const buf_block_t*block;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user