Race condition between buffer pool page optimistic access and eviction | InnoDB: Failing assertion: buf_page_in_file(bpage) in buf_page_make_young
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
Invalid
|
Undecided
|
Unassigned | |||
5.6 |
Invalid
|
Undecided
|
Unassigned | |||
5.7 |
Fix Released
|
High
|
Laurynas Biveinis |
Bug Description
Buffer pool mutex split patch introduced bpage::
[18/12/2016, 16:42:53] Alexey Stroganov: 2016-12-18 01:03:47 0x7f95a0617700 InnoDB: Assertion failure in thread 140280617596672 in file buf0buf.cc line 3514
InnoDB: Failing assertion: buf_page_
[18/12/2016, 16:43:19] Alexey Stroganov: /data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
/data/opt/
summary: |
- Race condition between accessing and flushing buffer pool page | + Race condition between buffer pool page optimistic access and eviction | InnoDB: Failing assertion: buf_page_in_file(bpage) in buf_page_make_young |
tags: | added: regression |
With debug code:
Thread 73 (Thread 0x7f5b4f575700 (LWP 24068)): 0e68, info=0x7f5b4f57 0e90, match=0x7f5b8ed 68168, addr=7923769) at dl-addr.c:63 fatal_signal( int)+1161> , info=info@ entry=0x7f5b4f5 70e90, mapp=mapp@ entry=0x7f5b4f5 70e68, symbolp= symbolp@ entry=0x0) at dl-addr.c:137 backtrace_ symbols_ fd (array= array@entry= 0x7f5b4f570f80, size=size@entry=28, fd=2) at backtracesymsfd .c:49 bottom= 0x7f5b4f574e30 "", thread_ stack=262144) at /data/opt/ alexey. s/git/ps- lb.debug/ mysys/stacktrac e.c:238 alexey. s/git/ps- lb.debug/ sql/signal_ handler. cc:151 unix/sysv/ linux/raise. c:54 assertion_ failed (expr=expr@ entry=0x15e2003 "count != UINT32_MAX", file=file@ entry=0x15dc328 "/data/ opt/alexey. s/git/ps- lb.debug/ storage/ innobase/ include/ buf0buf. ic", line=line@ entry=1024) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ ut/ut0dbg. cc:67 0x7f5b6547a280) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ include/ buf0buf. ic:1024 0x7f5b6547a280) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ include/ buf0buf. ic:1036 buf_fix_ dec (block= 0x7f5b6547a280) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ include/ buf0buf. ic:1047 optimistic_ get (rw_latch=1, block=block@ entry=0x7f5b654 7a280, modify_ clock=modify_ clock@entry= 3104, file=file@ entry=0x15ebc50 "/data/ opt/alexey. s/git/ps- lb.debug/ storage/ innobase/ row/row0sel. cc", line=line@ entry=3675, mtr=mtr@ entry=0x7f5b4f5 72c50) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ buf/buf0buf. cc:4856 optimistic_ latch_leaves (block= 0x7f5b6547a280, modify_clock=3104, latch_mode= latch_mode@ entry=0x7f5b4f5 71ce8, cursor= cursor@ entry=0x7f5b32a f3288, file=file@ entry=0x15ebc50 "/data/ opt/alexey. s/git/ps- lb.debug/ storage/ innobase/ row/row0sel. cc", line=line@ entry=3675, mtr=0x7f5b4f572c50) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ btr/btr0cur. cc:445 restore_ position_ func (latch_ mode=latch_ mode@entry= 1, cursor= cursor@ entry=0x7f5b32a f3288, file=file@ entry=0x15ebc50 "/data/ opt/alexey. s/git/ps- lb.debug/ storage/ innobase/ row/row0sel. cc", line=line@ entry=3675, mtr=mtr@ entry=0x7f5b4f5 72c50) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ btr/btr0pcur. cc:290 position_ for_mysql (same_user_ rec=same_ user_rec@ entry=0x7f5b4f5 71e30, pcur=pcur@ entry=0x7f5b32a f3288, moves_up= moves_up@ entry=1, mtr=mtr@ entry=0x7f5b4f5 72c50, latch_mode=1) at /data/opt/ alexey. s/git/ps- lb.debug/ storage/ innobase/ row/row0sel. cc:3675 entry=0x7f5b32a bc430 "", mode=PAGE_CUR_GE, mode@entry= PAGE_CUR_ UNSUPP, prebuilt= 0x7f5b32af3088, match_mode= match_. ..
#0 0x00007f5b8d157b0e in determine_info (symbolp=0x0, mapp=0x7f5b4f57
#1 __GI__dl_addr (address=0x78e839 <handle_
#2 0x00007f5b8d12a87e in __GI___
#3 0x0000000000ea07de in my_print_stacktrace (stack_
#4 0x000000000078e839 in handle_fatal_signal (sig=6) at /data/opt/
#5 <signal handler called>
#6 0x00007f5b8d04a418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/
#7 0x00007f5b8d04c01a in __GI_abort () at abort.c:89
#8 0x0000000000762ae4 in ut_dbg_
#9 0x000000000110d450 in buf_block_unfix (bpage=
#10 buf_block_unfix (block=
#11 buf_block_
#12 buf_page_
#13 0x00000000010e846c in btr_cur_
#14 0x00000000010f6595 in btr_pcur_
#15 0x0000000000761561 in sel_restore_
#16 0x0000000001039963 in row_search_mvcc (buf=buf@