Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.6.17
-
None
Description
Customer gets the following error when starting 10.6.17 immediately following sofware update from previous version, 10.6.16.
2024-06-19 21:05:44 10 [ERROR] InnoDB: Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1
|
2024-06-19 21:05:44 10 [ERROR] InnoDB: File './ibdata1' is corrupted
|
2024-06-19 21:05:44 10 [ERROR] InnoDB: We detected index corruption in an InnoDB type table. You have to dump + drop + reimport the table or, in a case of widespread corruption, dump all InnoDB tables and recreate the whole tablespace. If the mariadbd server crashes after the startup or when you dump the tables. Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.
|
2024-06-19 21:05:44 10 [ERROR] mariadbd: Index for table 'gtid_slave_pos' is corrupt; try to repair it
|
2024-06-19 21:05:44 10 [ERROR] InnoDB: Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1
|
2024-06-19 21:05:44 10 [ERROR] InnoDB: Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1
|
2024-06-19 21:05:44 0x7f266c669700 InnoDB: Assertion failure in file /home/buildbot/buildbot/build/storage/innobase/trx/trx0purge.cc line 268
|
For customer, this has occurred more than one time.
Customer discovered a workaround:
Start database one time with
innodb_force_recovery=1
|
Shutdown, remove innodb_force_recovery configuration.
Start database normally.
Attachments
Issue Links
- causes
-
MDEV-35181 Assertion 'state < buf_page_t::READ_FIX' in buf_page_create_low()
-
- Closed
-
-
MDEV-35626 Race condition between buf_page_create_low() and read completion
-
- Closed
-
- is caused by
-
MDEV-27058 Buffer page descriptors are too large
-
- Closed
-
- is duplicated by
-
MDEV-32174 ROW_FORMAT=COMPRESSED table corruption due to ROLLBACK
-
- Closed
-
-
MDEV-34059 Random innodb index corruption
-
- Closed
-
-
MDEV-34873 corrupted index
-
- Closed
-
-
MDEV-34978 MariaDB 11.4.2 crash read outside the bounds of the file: .//undo001
-
- Closed
-
-
MDEV-35056 InnoDB: Trying to read 16384 bytes at xxxx outside the bounds of the file: ./ibdata1
-
- Closed
-
-
MDEV-35385 Server crash after reading outside of bounds on ibdata1
-
- Closed
-
- relates to
-
MDEV-32817 在最近将版本升级到10.11.5后,针对表进行频繁的读写操作不久后,出现index for table xxxx is corrupt,随后此表tablespace xxxxxx corrupted,最后Tablespace is missing for a table,此表已完全不可用
-
- Closed
-
-
MDEV-33922 InnoDB undo log tablespace file corruption
-
- Closed
-
-
MDEV-34233 InnoDB crashes due to corrupted ibdata1 (Assertion failure in innodb.undo_page)
-
- Closed
-
-
MDEV-29832 rpl.rpl_semi_sync_after_sync_row frequently fails
-
- Open
-
-
MDEV-33189 Server crash after reading outside of bounds on ibdata1 , file corrupted, no auto-recovery
-
- Closed
-
70368744161280 is the byte offset of the largest 32-bit page number (4294967295, also known as FIL_NULL in the source code) when using the default innodb_page_size=16k.
In many persistent InnoDB data structures, such as linked lists of pages, FIL_NULL is being used as a "null pointer". A list somewhere is corrupted, and we do not know where.
It would be great if a copy of the corrupted data had been saved before engaging the workaround, and MariaDB 10.6.18 could be started on such a copy. I would like to see if the changes made in
MDEV-33325would have any impact on this. Ultimately, I would like to know where exactly the incorrect page number was being read without validation, so that we could get closer to the root cause (the write that corrupted the database).Based on the fact that innodb_force_recovery=1 seemed to heal the database, I assume that the corruption is somewhere in the undo logs, and as a result of this corruption, some purging of the committed transaction history was skipped. I would expect some CHECK TABLE…EXTENDED (
MDEV-24402) to report some orphan secondary index records. But, we must keep in mind that such orphans can also be caused by the known bug MDEV-29823 even if this undo log corruption bug wasn’t involved.