Bug #111029 corruption in the InnoDB tablespace
Submitted: 15 May 2023 12:01 Modified: 15 May 2023 12:29
Reporter: Siyu Gu Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:8.0.29 OS:Red Hat (7.6)
Assigned to: CPU Architecture:x86
Tags: Assertion failure: row0se

[15 May 2023 12:01] Siyu Gu
Description:
[ERROR] [MY-013183] [InnoDB] Assertion failure: row0sel.cc:2788:(!prebuilt->idx_cond && prebuilt->m_mysql_handler->end_range != nullptr) || (prebuilt->trx->isolation_level == TRX_ISO_READ_UNCOMMITTED) thread 140208944690944
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.

How to repeat:
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7f820c108070
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f84f057ad40 thread_stack 0x80000
/data/mysql/mysql3306/install/mysql/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x2e) [0x1f80d4e]
/data/mysql/mysql3306/install/mysql/bin/mysqld(print_fatal_signal(int)+0x2eb) [0x103587b]
/data/mysql/mysql3306/install/mysql/bin/mysqld(my_server_abort()+0x5e) [0x103597e]
/data/mysql/mysql3306/install/mysql/bin/mysqld(my_abort()+0xa) [0x1f7b4fa]
/data/mysql/mysql3306/install/mysql/bin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x30c) [0x223b96c]
/data/mysql/mysql3306/install/mysql/bin/mysqld() [0x21aa15f]
/data/mysql/mysql3306/install/mysql/bin/mysqld(row_sel_store_mysql_rec(unsigned char*, row_prebuilt_t*, unsigned char const*, dtuple_t const*, bool, dict_index_t const*, dict_index_t const*, unsigned long const*, bool, lob::undo_vers_t*, mem_block_info_t*&)+0x367) [0x21ad907]
/data/mysql/mysql3306/install/mysql/bin/mysqld(row_search_mvcc(unsigned char*, page_cur_mode_t, row_prebuilt_t*, unsigned long, unsigned long)+0x2aed) [0x21b46fd]
/data/mysql/mysql3306/install/mysql/bin/mysqld(ha_innobase::index_read(unsigned char*, unsigned char const*, unsigned int, ha_rkey_function)+0x301) [0x2063a81]
/data/mysql/mysql3306/install/mysql/bin/mysqld(ha_innobase::index_first(unsigned char*)+0x30) [0x2041960]
/data/mysql/mysql3306/install/mysql/bin/mysqld(ha_innobase::rnd_next(unsigned char*)+0x2f) [0x20640cf]
/data/mysql/mysql3306/install/mysql/bin/mysqld(handler::ha_rnd_next(unsigned char*)+0x147) [0x1137857]
/data/mysql/mysql3306/install/mysql/bin/mysqld(TableScanIterator::Read()+0x1d) [0x1279b5d]
/data/mysql/mysql3306/install/mysql/bin/mysqld(Sql_cmd_delete::delete_from_single_table(THD*)+0x9c5) [0x138de05]
/data/mysql/mysql3306/install/mysql/bin/mysqld(Sql_cmd_delete::execute_inner(THD*)+0xb5) [0x138ee85]
/data/mysql/mysql3306/install/mysql/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x2c5) [0xf46e55]
/data/mysql/mysql3306/install/mysql/bin/mysqld(mysql_execute_command(THD*, bool)+0xab8) [0xee5c18]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_instr_stmt::exec_core(THD*, unsigned int*)+0x51) [0xe3f8c1]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_lex_instr::reset_lex_and_exec_core(THD*, unsigned int*, bool)+0x169) [0xe417a9]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_lex_instr::validate_lex_and_execute_core(THD*, unsigned int*, bool)+0x6c) [0xe4288c]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_instr_stmt::execute(THD*, unsigned int*)+0xcc) [0xe4422c]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_head::execute(THD*, bool)+0x592) [0xe37852]
/data/mysql/mysql3306/install/mysql/bin/mysqld(sp_head::execute_procedure(THD*, mem_root_deque<Item*>*)+0x89d) [0xe3aa9d]
/data/mysql/mysql3306/install/mysql/bin/mysqld(Sql_cmd_call::execute_inner(THD*)+0x148) [0x1382f38]
/data/mysql/mysql3306/install/mysql/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x2c5) [0xf46e55]
/data/mysql/mysql3306/install/mysql/bin/mysqld(mysql_execute_command(THD*, bool)+0xab8) [0xee5c18]
/data/mysql/mysql3306/install/mysql/bin/mysqld(dispatch_sql_command(THD*, Parser_state*)+0x403) [0xeeaa63]
/data/mysql/mysql3306/install/mysql/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0xe40) [0xeebda0]
/data/mysql/mysql3306/install/mysql/bin/mysqld(do_command(THD*)+0x103) [0xeede93]
/data/mysql/mysql3306/install/mysql/bin/mysqld() [0x1026898]
/data/mysql/mysql3306/install/mysql/bin/mysqld() [0x24c068a]
/lib64/libpthread.so.0(+0x7dd5) [0x7f856c188dd5]
/lib64/libc.so.6(clone+0x6d) [0x7f856a493ead]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f820c322300): is an invalid pointer
Connection ID (thread ID): 744
Status: NOT_KILLED
[15 May 2023 12:29] MySQL Verification Team
Hi Mr. Gu,

Thank you for your bug report.

We have to inform you that we have not received any reports for the asserts in that particular line of code.

Hence, we can not identify the cause of the assert. In order to do that, we need a fully repeatable test case. That test case would consist of the set of SQL statements that would always lead to the crash like the one that you reported.

We can not continue without a test case.

Can't repeat.