Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
11.4, 11.8, 12.3
-
Related to install and upgrade
-
InnoDB would fail to start up on data files from MariaDB Server 10.x or earlier when innodb_force_recovery=6 is specified.
-
Q2/2026 Server Maintenance
Description
After upgrading from MariaDB 10.6.XX to 11.4 or 11.8.XX, the server fails to start if ib_logfile0 is removed. Even when attempting recovery using innodb_force_recovery=6, the server still fails to start.
This behavior appears related to changes introduced in later versions:
Redo log format changes in 10.8
Change buffer removal in 11.0 https://jira.mariadb.org/browse/MDEV-29694
Additionally, the error message seems misleading, as it references innodb_read_only, while the actual configuration used is innodb_force_recovery=6.
|
|
Steps to Reproduce
|
Start MariaDB on version 10.6.25-21
|
|
|
Stop the server:
|
|
|
systemctl stop mariadb
|
|
|
Upgrade to MariaDB 11.8.6-3
|
Remove ib_logfile0 from the data directory
|
|
|
Start MariaDB → startup fails
|
|
|
Set in configuration:
|
|
|
innodb_force_recovery=6
|
|
|
Start MariaDB again → still fails
|
|
The server fails to start with the following errors:
|
|
[ERROR] InnoDB: File /var/lib/mysql/ib_logfile0 was not found
|
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
|
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
|
[ERROR] Unknown/unsupported storage engine: InnoDB
|
|
With innodb_force_recovery=6:
|
|
[Note] InnoDB: !!! innodb_force_recovery is set to 6 !!!
|
[Note] InnoDB: Started in read only mode
|
[ERROR] InnoDB: innodb_read_only=ON prevents an upgrade of the change buffer
|
[ERROR] InnoDB: Plugin initialization aborted with error Read only transaction
|
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
|
|
Attachments
Issue Links
- is caused by
-
MDEV-29694 Remove the InnoDB change buffer
-
- Closed
-
- relates to
-
MDEV-27199 Require ib_logfile0 to exist unless innodb_force_recovery=6
-
- Closed
-
-
MDEV-27208 Implement 2-ary CRC32() and the CRC32C() function
-
- Closed
-
-
MDEV-37058 Assertion get_lsn() == get_flushed_lsn() fails after change buffer upgrade
-
- Closed
-