Bug #91033 | InnoDB: ibuf cursor restoration fails! | ||
---|---|---|---|
Submitted: | 26 May 2018 11:11 | Modified: | 12 May 2020 16:33 |
Reporter: | Kevin Cai | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S2 (Serious) |
Version: | 5.7.17 | OS: | Other (Amazon Linux AMI release 2016.09) |
Assigned to: | CPU Architecture: | x86 |
[26 May 2018 11:11]
Kevin Cai
[26 May 2018 15:42]
MySQL Verification Team
Thank you for the bug report. To check this bug we need a repeatable test case and using a MySQL binary that you have not provided, please file a bug or contact the Administrator of the system you are using. Thanks.
[27 May 2018 3:50]
Kevin Cai
This is a Amazon Linux AMI release 2016.09. Kernel version: Kernel 4.4.23-31.54.amzn1.x86_64 on an x86_64. Currently we have difficulty finding out how to reproduce the issue. It just hit intermittently and seems not to have obvious patterns. Could you let us know what information you need to further investigate the issue? Thanks.
[31 May 2018 5:12]
MySQL Verification Team
We don't support AWS binaries, please ask support for them. Thanks.
[16 Jan 2020 8:18]
MySQL Verification Team
this is a real bug. Version: '5.7.30-asan' (Built on 11 January 2020 with g++ (GCC) 10.0.0 20191215 (experimental)) [ERROR] InnoDB: ibuf cursor restoration fails!. ibuf record inserted to page 368:19443 [ERROR] InnoDB: Submit a detailed bug report to http://bugs.mysql.com PHYSICAL RECORD: n_fields 7; 1-byte offsets; info bits 0 <cut> ERROR] [FATAL] InnoDB: Failed to restore ibuf position. InnoDB: Assertion failure in thread 139877061887744 in file ut0ut.cc line 918 InnoDB: We intentionally generate a memory trap. (gdb) bt #0 __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./pthread_kill.c:56 #1 in my_write_core (sig=sig@entry=6) at ./include/my_thread.h:105 #2 in handle_fatal_signal (sig=6) at ./sql/signal_handler.cc:227 #3 <signal handler called> #4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #5 in __GI_abort () at abort.c:79 #6 in ut_dbg_assertion_failed at ./storage/innobase/ut/ut0dbg.cc:75 #7 in ib::fatal::~fatal at ./storage/innobase/ut/ut0ut.cc:918 #8 in ibuf_restore_pos at #9 in ibuf_delete_rec at ./storage/innobase/ibuf/ibuf0ibuf.cc:4380 #10 in ibuf_merge_or_delete_for_page at ./storage/innobase/include/buf0buf.h:251 #11 in buf_page_io_complete at ./storage/innobase/buf/buf0buf.cc:5836 #12 in fil_aio_wait at ./storage/innobase/fil/fil0fil.cc:5896 #13 in io_handler_thread at ./storage/innobase/srv/srv0start.cc:319 #14 in start_thread at pthread_create.c:479 I'll look into making a testcase. o) small innodb_buffer_pool_size=50M o) tables with varchar cols + many secondary indexes o) random DML workload o) truncate table
[16 Jan 2020 8:19]
MySQL Verification Team
When making a testcase, one needs to be sure change buffering is getting used. e.g. show engine innodb status : ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 14, free list len 680, seg size 695, 62188 merges merged operations: insert 1051877, delete mark 4217777, delete 359159 discarded operations: insert 6039, delete mark 33790, delete 64
[16 Jan 2020 12:51]
MySQL Verification Team
Verified on 5.7. Have not managed to repeat this on 8.0.
[12 May 2020 16:33]
Daniel Price
Posted by developer: Fixed as of the upcoming 5.7.31, 8.0.21 release, and here's the proposed changelog entry from the documentation team: The server failed intermittently with an "ibuf cursor restoration fails" error.
[7 Sep 2021 6:31]
MySQL Verification Team
Bug #104850 marked as duplicate of this one
[10 Jun 2022 9:25]
cao evan
How to test and reproduce this bug?
[13 Mar 2024 8:34]
Bob Zhang
https://github.com/mysql/mysql-server/commit/5a0b4ba9d39f40bce2f40fa99512e38444662cac In 8.0.21, there isn't conditional judgement: fil_space_is_being_truncated(space). If concurrently `discard tablespace` statement is executing, ibuf cursor restoration fails.