PaulB
Well-known member
This isn't directly a XenForo issue, but it will affect any XenForo sites using MySQL 8.0.29. As far as I'm aware, MariaDB is not affected. Only 8.0.29 is affected; older and newer versions are in the clear. MySQL 8.0.29 was released 2022-04-26, so if you haven't updated since then, you're probably not affected. 8.0.30 was released on 2022-07-26 and fixes the issue, although the process of upgrading from 8.0.29 to 8.0.30 can potentially cause irrecoverable data loss if the redo logs aren't empty during the upgrade.
A data corruption issue is likely to arise on MySQL servers running 8.0.29 due to a regression. The corruption happens when the following occur in succession:
If you're already running 8.0.29, you'll need to review the limited public info about the issue and determine the correct action to avoid corruption. Simply upgrading to 8.0.30 as you normally would may still leave you with problems, especially 8.0.29 isn't shut down cleanly during the upgrade process.
The following query will identify any affected tables:
If that query returns any results on 8.0.29, you should assume that your redo logs are corrupt and will cause irreversible data corruption if replayed during crash recovery. You may be able to resolve the issue by using
A data corruption issue is likely to arise on MySQL servers running 8.0.29 due to a regression. The corruption happens when the following occur in succession:
- Columns are added to or dropped from a table while running MySQL 8.0.29.
- That table has row modifications (INSERT, DELETE, etc.).
- The row modifications are written to the redo log.
- A crash recovery is performed.
If you're already running 8.0.29, you'll need to review the limited public info about the issue and determine the correct action to avoid corruption. Simply upgrading to 8.0.30 as you normally would may still leave you with problems, especially 8.0.29 isn't shut down cleanly during the upgrade process.
The following query will identify any affected tables:
SQL:
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLES WHERE TOTAL_ROW_VERSIONS > 0;
OPTIMIZE TABLE
on the affected tables, but you'll need to fully assess your infrastructure and determine whether that is the correction action, as it's not without risks in this scenario.