0

Recently I had an issue with MySQL for an unknown reason. It didn't start and produced an error message, so I decided to update it from 8.0.31 to 8.0.32. The Windows version is 10 Pro for Workstations 21H2. However, I have received the same error message while updating (see below). Any ideas how is it possible to fix?

Beginning configuration step: Updating permissions for the data folder and related server files

Attempting to update the permissions for the data folder and related server files...
The data folder and related server files have already been updated.
Ended configuration step: Updating permissions for the data folder and related server files

Beginning configuration step: Starting the server and upgrading system tables (may take a long time)

Attempting to start service MySQL80...
Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.32) starting as process 32644
Ignored deprecated configuration parameter innodb_log_file_size. Used innodb_redo_log_capacity instead.
InnoDB initialization has started.
InnoDB initialization has ended.
Assertion failure: fut0lst.ic:81:addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA thread 32904
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.
2023-03-03T07:56:46Z UTC - mysqld got exception 0x16 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x1ce40839c10
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...
7ff6e1118408    mysqld.exe!?my_print_stacktrace@@YAXPEBEK@Z()
7ff6e0296c01    mysqld.exe!?print_fatal_signal@@YAXH@Z()
7ff6e0296943    mysqld.exe!?my_server_abort@@YAXXZ()
7ff6e10fa75a    mysqld.exe!?my_abort@@YAXXZ()
7ff6e13562a9    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e148e42b    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e148d769    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1251b01    mysqld.exe!?set_compression_level@Zstd_comp@compression@transaction@binary_log@@UEAAXI@Z()
7ff6e1493bb2    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1388e97    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e13844f1    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1383f35    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1398467    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e139835b    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1398b9a    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e1398938    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e12ff094    mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
7ff6e11e809c    mysqld.exe!?set_compression_level@Zstd_comp@compression@transaction@binary_log@@UEAAXI@Z()
7ff6e1081826    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff6e1085f66    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff6e0fb402e    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff6e0faf4e8    mysqld.exe!?init@Rpl_info_values@@QEAA_NXZ()
7ff6e00f495e    mysqld.exe!?run_bootstrap_thread@bootstrap@@YA_NPEBDPEAUMYSQL_FILE@@P6A_NPEAVTHD@@@ZW4enum_thread_type@@@Z()
7ff6e1711209    mysqld.exe!?my_init_dynamic_array@@YA_NPEAUDYNAMIC_ARRAY@@IIPEAXII@Z()
7ff6e1108bfc    mysqld.exe!?my_thread_self_setname@@YAXPEBD@Z()
7ffe7b1d1bb2    ucrtbase.dll!_configthreadlocale()
7ffe7b817614    KERNEL32.DLL!BaseThreadInitThunk()
7ffe7d3626a1    ntdll.dll!RtlUserThreadStart()
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): 
Connection ID (thread ID): 1
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.
Object reference not set to an instance of an object.
Ended configuration step: Starting the server and upgrading system tables (may take a long time)
2
  • The last line on that log is "Starting the server and upgrading system tables (may take a long time)". Are you sure the system is not just processing/upgrading tables? MySQL 8 runs mysql_upgradte automatically and it could take several minutes to complete. Commented Mar 16, 2023 at 21:08
  • @JesusUzcanga, yes I'm sure because the MySQL service is stopped at that moment
    – sevatster
    Commented Mar 20, 2023 at 9:50

1 Answer 1

0

The key log message is

Assertion failure: fut0lst.ic:81:addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA thread 32904 I

This looks like the result of severe file system level damage to your table data files, the only reference to this assertion that I could find is this blog post of a colleague of mine at MariaDB:

https://www.chriscalender.com/dealing-with-assertion-failure-in-file-fut0lst-ic-addr-page-fil_null-addr-boffset-fil_page_data/

So this looks like a corruption that even innodb_force_recovery can't deal with, and restoring from a good backup seems to be the only option here.

2
  • Thanks for the answer. The problem is weird since it's said in the article that it was impossible to start without innodb_force_recovery but I could start the service and have the database working for at least one day.
    – sevatster
    Commented May 1, 2023 at 8:00
  • You for sure do not want to use a database started in force recovery mode for another day, this is usually a tool of last resort, and once the server is up the only thing you should do is to try to do a mysqldump, to then set up a new clean instance from that dump ... Commented May 1, 2023 at 9:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.