Bug #108302 mysql server have restarted in a while time
Submitted: 26 Aug 2022 14:36 Modified: 29 Aug 2022 13:30
Reporter: gzhen zhang Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:8.0.29 OS:CentOS (Red Hat Enterprise Linux Server release 7.4)
Assigned to: CPU Architecture:x86

[26 Aug 2022 14:36] gzhen zhang
Description:
After I upgraded my MySQL version from 8.0.28 to 8.0.29, my mysql-server often restarted in a white time,and the error log is :
2022-08-23T14:58:42.496946+08:00 1139 [ERROR] [MY-013183] [InnoDB] Assertion failure: btr0cur.cc:4018:page_zip || optim_err != DB_UNDERFLOW thread 140213199095552
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.
06:58:42 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7f86ecc3ac40
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 = 7f85edecbd40 thread_stack 0x100000
/u01/app/mysql-8.0.29/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x2e) [0x1f80d4e]
/u01/app/mysql-8.0.29/bin/mysqld(print_fatal_signal(int)+0x2eb) [0x103587b]
/u01/app/mysql-8.0.29/bin/mysqld(my_server_abort()+0x5e) [0x103597e]
/u01/app/mysql-8.0.29/bin/mysqld(my_abort()+0xa) [0x1f7b4fa]
/u01/app/mysql-8.0.29/bin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x30c) [0x223b96c]
/u01/app/mysql-8.0.29/bin/mysqld(btr_cur_pessimistic_update(unsigned long, btr_cur_t*, unsigned long**, mem_block_info_t**, mem_block_info_t*, big_rec_t**, upd_t*, unsigned long, que_thr_t*, unsigned long, unsigned long, mtr_t*, btr_pcur_t*)+0x668) [0x227ec98]
/u01/app/mysql-8.0.29/bin/mysqld() [0x2415507]
/u01/app/mysql-8.0.29/bin/mysqld() [0x2415af1]
/u01/app/mysql-8.0.29/bin/mysqld(row_undo_mod(undo_node_t*, que_thr_t*)+0xcef) [0x24191ef]
/u01/app/mysql-8.0.29/bin/mysqld(row_undo_step(que_thr_t*)+0x52) [0x21b66e2]
/u01/app/mysql-8.0.29/bin/mysqld(que_run_threads(que_thr_t*)+0xc98) [0x215baa8]
/u01/app/mysql-8.0.29/bin/mysqld() [0x2210b17]
/u01/app/mysql-8.0.29/bin/mysqld() [0x22154dd]
/u01/app/mysql-8.0.29/bin/mysqld(trx_rollback_for_mysql(trx_t*)+0x2b8) [0x2215ad8]
/u01/app/mysql-8.0.29/bin/mysqld() [0x206369a]
/u01/app/mysql-8.0.29/bin/mysqld(ha_rollback_low(THD*, bool)+0xbf) [0x1135a4f]
/u01/app/mysql-8.0.29/bin/mysqld(MYSQL_BIN_LOG::rollback(THD*, bool)+0x17f) [0x1bbf31f]
/u01/app/mysql-8.0.29/bin/mysqld(ha_rollback_trans(THD*, bool)+0x7a) [0x1135bfa]
/u01/app/mysql-8.0.29/bin/mysqld(trans_rollback(THD*)+0x4e) [0xfff96e]
/u01/app/mysql-8.0.29/bin/mysqld(mysql_execute_command(THD*, bool)+0x2426) [0xee7586]
/u01/app/mysql-8.0.29/bin/mysqld(dispatch_sql_command(THD*, Parser_state*)+0x403) [0xeeaa63]
/u01/app/mysql-8.0.29/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0xe40) [0xeebda0]
/u01/app/mysql-8.0.29/bin/mysqld(do_command(THD*)+0x103) [0xeede93]
/u01/app/mysql-8.0.29/bin/mysqld() [0x1026898]
/u01/app/mysql-8.0.29/bin/mysqld() [0x24c068a]
/lib64/libpthread.so.0(+0x7e65) [0x7f872a32ee65]
/lib64/libc.so.6(clone+0x6d) [0x7f872863888d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f86eca73750): is an invalid pointer
Connection ID (thread ID): 1139
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

How to repeat:
What can i do to solve the problem
[29 Aug 2022 12:00] MySQL Verification Team
Hi Mr. zhang,

Thank you for your bug report.

However, your report is a duplicate of the bug report, which is already verified. It is this bug report:

https://bugs.mysql.com/bug.php?id=105024

Since you can not see that report, we have left a message there that you are informed when that bug is fixed.

Thank you for your report.
[29 Aug 2022 13:22] gzhen zhang
Thank you for your reply,I don't have access https://bugs.mysql.com/bug.php?id=105024,when bug will  be fixed.
[29 Aug 2022 13:24] MySQL Verification Team
Hi,

We do know that you do not have access, because it is a security bug, with a full test case.

That is why we have left a message in that report that you are informed when the release with a bug fix is published.
[29 Aug 2022 13:30] gzhen zhang
Thank you very much and look forward to fixed it soon.
[18 Jan 10:44] lin min
Hi MySQL Verification Team,
We encoutered this bug also. The mysqld was upgraded from 8.0.27 to 8.0.30´╝îabout a month later, mysqld crashed when rollback a transaction that execute a update sql.
But I can't repeat this bug step by step, could you tell me how to repeat this bug step by step?
We need to know how this bug happend, so that we can avoid it.
[6 Feb 12:35] MySQL Verification Team
Hi Mr. Min,

Unfortunately, the original bug is a security vulnerability bug, so the reproduction steps will remain forever hidden.