[MDEV-31065] MariaDB crashes with [ERROR] [FATAL] InnoDB: Page old data size 8483 new data size 7800, page old max ins size 7519 new max ins size 8202 Created: 2023-04-17 Updated: 2023-04-18 Resolved: 2023-04-18 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.5.12 |
| Fix Version/s: | 10.11.2, 10.5.19, 10.6.12, 10.8.7, 10.9.5, 10.10.3 |
| Type: | Bug | Priority: | Major |
| Reporter: | Paulius mickus | Assignee: | Marko Mäkelä |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CloudLinux release 7.9 4.18.0-305.19.1.lve.el7h.x86_64 |
||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| Description |
|
MariaDB crashes with `[ERROR] [FATAL] InnoDB: Page old data size 8483 new data size 7800, page old max ins size 7519 new max ins size 8202` error. Crash occurs every ~20seconds if mariaDB is set on innodb_force_recovery = 0 or 1 modes. Starting innodb_force_recovery = 2 keeps MariaBD running, though setting recovery mode lower will make it crash again. Error log below:
Attaching Full Backtraces For All Threads From a Core File, which was generated with the following command:
Please let me know in case any other info is needed, thank you! |
| Comments |
| Comment by Marko Mäkelä [ 2023-04-17 ] |
|
mariadbd_full_bt_all_threads.txt |
| Comment by Marko Mäkelä [ 2023-04-17 ] |
|
Can you please check what happens when upgrading to MariaDB 10.6.12 or later? I hope that it will only mark the secondary index as corrupted, and not crash. This actual corruption can be fixed by dropping the corrupted secondary index, and creating it again, in two ALTER TABLE statements. If the table is not too large, you might just simply execute OPTIMIZE TABLE to completely rebuild it. |
| Comment by Paulius mickus [ 2023-04-17 ] |
|
Thank you for the quick response! Another confirmation I should visit FOSDEM next year Unfortunately this server is downtime sensitive and upgrading major version would take some time as we're dealing with relatively large data sets. We've tried OPTIMIZE TABLE on affected table(s), however, optimize function forced MariaDB to crash again, attaching full strace log in case you'd like to take a look: mariadbd_full_bt_all_threads3.txt We're thinking about possibility dropping those affected databases and restoring them from the backups. |
| Comment by Marko Mäkelä [ 2023-04-17 ] |
|
Did you upgrade to MariaDB 10.5.19 (where If you are using the 10.5 series, you’d better execute the OPTIMIZE TABLE or DROP INDEX while the server is started up with innodb_force_recovery=2, to prevent the purge of history from causing a change buffer merge before the problematic index has been dropped. If you are executing ALTER TABLE…ADD INDEX or CREATE INDEX in a version older than 10.5.19, then the phantom change buffer entries will not be removed and may cause trouble later, even if you are using the recent default ( mariadbd_full_bt_all_threads3.txt |
| Comment by Paulius mickus [ 2023-04-17 ] |
|
No, we were still using 10.5.12, going to update to 10.5.19 shortly. |
| Comment by Paulius mickus [ 2023-04-17 ] |
|
After upgrading to 10.5.19 optimize went successfully on crashing databases and MariaDB server is now running smoothly with innodb_force_recovery=0, so it seems that crash in fts_sync_during_ddl() is also related to older versions only. Thank you for your help! |
| Comment by Marko Mäkelä [ 2023-04-18 ] |
|
Thank you. The FTS bug could have been |