Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2.32, 10.3.23, 10.4.13
Description
During recovery, InnoDB tries to fetch the page from disk even though
it has MLOG_INIT redo log for the page. I think buf_page_read_low()
should handle recovery scenario also.
The following stack trace tries to fetch the page even it has
MLOG_INIT_PAGE for it.
#0 buf_page_init (buf_pool=buf_pool@entry=0x61c000000080, page_id=...,
|
zip_size=zip_size@entry=0, block=block@entry=0x6400007da1c0)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/buf/buf0buf.cc:5280
|
#1 0x000055768a1b38f1 in buf_page_init_for_read (
|
err=err@entry=0x7fed16d7f6c0, mode=mode@entry=132, page_id=...,
|
zip_size=zip_size@entry=0, unzip=unzip@entry=false)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/buf/buf0buf.cc:5422
|
#2 0x000055768a238f15 in buf_read_page_low (err=err@entry=0x7fed16d7f6c0,
|
sync=sync@entry=false, type=type@entry=192, mode=mode@entry=132,
|
page_id=..., zip_size=zip_size@entry=0, unzip=<optimized out>,
|
ignore_missing_space=<optimized out>)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/buf/buf0rea.cc:152
|
#3 0x000055768a23f482 in buf_read_page_background (page_id=...,
|
zip_size=zip_size@entry=0, sync=sync@entry=false)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/buf/buf0rea.cc:436
|
#4 0x000055768a0fcda7 in btr_cur_prefetch_siblings (
|
block=block@entry=0x6400007d9f70)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/btr/btr0cur.cc:3353
|
#5 0x000055768a1355a3 in btr_cur_optimistic_delete_func (
|
cursor=cursor@entry=0x7fed16d80260, flags=flags@entry=0,
|
mtr=mtr@entry=0x7fed16d805a0)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/btr/btr0cur.cc:5855
|
#6 0x0000557689b9b393 in ibuf_delete_rec (space=67, page_no=67,
|
pcur=pcur@entry=0x7fed16d80260,
|
search_tuple=search_tuple@entry=0x616000060108,
|
mtr=mtr@entry=0x7fed16d805a0)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/ibuf/ibuf0ibuf.cc:4194
|
#7 0x0000557689ba0915 in ibuf_merge_or_delete_for_page (
|
block=block@entry=0x6400007d9880, page_id=..., zip_size=<optimized out>,
|
update_ibuf_bitmap=<optimized out>, update_ibuf_bitmap@entry=true)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/ibuf/ibuf0ibuf.cc:4636
|
#8 0x000055768a1c0d05 in buf_page_io_complete (bpage=0x6400007d9880,
|
dblwr=dblwr@entry=true, evict=evict@entry=false)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/buf/buf0buf.cc:6194
|
#9 0x000055768a354ba6 in fil_aio_wait (segment=segment@entry=3)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/fil/fil0fil.cc:4372
|
#10 0x0000557689f54f94 in io_handler_thread (arg=<optimized out>)
|
at /home/mleich/bb-10.4-MDEV-11799/storage/innobase/srv/srv0start.cc:324
|
#11 0x00007fa71843f6db in start_thread (arg=0x7fed16d82700)
|
at pthread_create.c:463
|
---Type <return> to continue, or q <return> to quit---
|
#12 0x0000000069502a3f in clone ()
|
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
It leads to infinite loop of buf_page_create() and recv_recovery_create_page_low()
and eventually leads to failure of the server startup.
Attachments
Issue Links
- is caused by
-
MDEV-21572 buf_page_get_gen() should apply buffered page initialized redo log during recovery
- Closed
- relates to
-
MDEV-19514 Defer change buffer merge until pages are requested
- Closed
-
MDEV-19586 Replace recv_sys_t::addr_hash with a std::map
- Closed
-
MDEV-21572 buf_page_get_gen() should apply buffered page initialized redo log during recovery
- Closed