[MDEV-13680] InnoDB may crash when btr_page_alloc() fails Created: 2017-08-30  Updated: 2022-06-07  Resolved: 2022-06-06

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.2.2
Fix Version/s: 10.6.9, 10.7.5, 10.8.4, 10.9.2

Type: Bug Priority: Critical
Reporter: Marko Mäkelä Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: compat56, crash

Issue Links:
Relates
relates to MDEV-13542 Crashing on a corrupted page is unhel... Closed
relates to MDEV-13625 Merge InnoDB test cases from MySQL 5.6 Closed

 Description   

Due to an incorrect merge from MySQL 5.6 to MySQL 5.7 a bug fix and a test that were included in MySQL 5.6 were omitted from MySQL 5.7.
That is, contrary to the claim in MySQL Bug #77497 the bug was not fixed in MySQL 5.7.10 nor 8.0.0 (née 5.8.0).

The first affected version is MariaDB 10.2.2, because it imported MySQL 5.7.9.

Also the fix in MySQL 5.6.28 looks incomplete; all callers of btr_page_alloc() should check for NULL value and always propagate the error to the caller. I think we should improve this in MariaDB 10.0 already.

In MariaDB, the test was introduced as innodb.create-index-debug as part of MDEV-13625. In MySQL, the test was added to innodb.create-index, which in MariaDB does not depend on a debug server.



 Comments   
Comment by Marko Mäkelä [ 2022-05-06 ]

I think that this can be fixed as part of MDEV-13542, or tested as part of fixing that bug. I already successfully tested an adapted version of innodb.create-index-debug in my 10.6-based development branch. I think that the test as such is useless, and we’d better test this by running stress tests on tables created in the system tablespace or the temporary tablespace without the autoextend attribute, so that we can run out of space.

Generated at Thu Feb 08 08:07:29 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.