Description:
While working with a PHP application with many users on it and while a MySQL dump cron job was running for 4 minutes MySQL stopped working and then infinitely tried to restart. While it was possible to start MySQL with innodb_force_recovery = 3 we dumped the database and reimported it, but this didn't help. So we restored the VM from Backup and used an earlier MySQL dump which then worked.
Here's the detailed error message:
-------------------------------------------------------------------------
2022-12-20T16:04:09.377099Z 2919082 [ERROR] [MY-013183] [InnoDB] Assertion failure: btr0cur.cc:4024:page_zip || optim_err != DB_UNDERFLOW thread 139804476245760
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.
2022-12-20T16:04:09Z UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
BuildID[sha1]=0072a2747aeb6f614b3af2193b9c221e03b0eccf
Thread pointer: 0x7f247cf041d0
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 = 7f26c424fc50 thread_stack 0x100000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x3d) [0x56357e3bf71d]
/usr/sbin/mysqld(print_fatal_signal(int)+0x3c3) [0x56357d444d03]
/usr/sbin/mysqld(my_server_abort()+0x6e) [0x56357d444e1e]
/usr/sbin/mysqld(my_abort()+0xa) [0x56357e3b98aa]
/usr/sbin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x326) [0x56357e6aec86]
/usr/sbin/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*)+0x7ea) [0x56357e6f579a]
/usr/sbin/mysqld(+0x270aafe) [0x56357e8aeafe]
/usr/sbin/mysqld(+0x270b0e9) [0x56357e8af0e9]
/usr/sbin/mysqld(row_undo_mod(undo_node_t*, que_thr_t*)+0xcd7) [0x56357e8b2b07]
/usr/sbin/mysqld(row_undo_step(que_thr_t*)+0x60) [0x56357e624fc0]
/usr/sbin/mysqld(que_run_threads(que_thr_t*)+0xb78) [0x56357e5c5f68]
/usr/sbin/mysqld(+0x24de1b7) [0x56357e6821b7]
/usr/sbin/mysqld(trx_rollback_to_savepoint(trx_t*, trx_savept_t*)+0x22) [0x56357e682462]
/usr/sbin/mysqld(row_mysql_handle_errors(dberr_t*, trx_t*, que_thr_t*, trx_savept_t*)+0x87) [0x56357e5e9727]
/usr/sbin/mysqld(+0x244b406) [0x56357e5ef406]
/usr/sbin/mysqld(row_update_for_mysql(unsigned char const*, row_prebuilt_t*)+0x3f) [0x56357e5ef94f]
/usr/sbin/mysqld(ha_innobase::update_row(unsigned char const*, unsigned char*)+0x2a2) [0x56357e4c04a2]
/usr/sbin/mysqld(handler::ha_update_row(unsigned char const*, unsigned char*)+0x1fb) [0x56357d54f39b]
/usr/sbin/mysqld(Sql_cmd_update::update_single_table(THD*)+0x1d75) [0x56357d3bf875]
/usr/sbin/mysqld(Sql_cmd_update::execute_inner(THD*)+0xd5) [0x56357d3c0255]
/usr/sbin/mysqld(Sql_cmd_dml::execute(THD*)+0x2d1) [0x56357d33f981]
/usr/sbin/mysqld(mysql_execute_command(THD*, bool)+0xc2c) [0x56357d2de7ac]
/usr/sbin/mysqld(dispatch_sql_command(THD*, Parser_state*)+0x42f) [0x56357d2e208f]
/usr/sbin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x2130) [0x56357d2e46d0]
/usr/sbin/mysqld(do_command(THD*)+0x207) [0x56357d2e56c7]
/usr/sbin/mysqld(+0x1291af0) [0x56357d435af0]
/usr/sbin/mysqld(+0x29c94b2) [0x56357eb6d4b2]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3) [0x7f26f8c54fa3]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f26f842306f]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f247c706720): update xyz set form_name = 'abc' where project_id = 1242 and form_name = ' abc '
Connection ID (thread ID): 2919082
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:
Don't know.
Suggested fix:
Don't know.