The test innodb.alter_crash fails due to a memory leak.
The reduced test case is as follows:
--source include/not_embedded.inc
|
--source include/have_innodb.inc
|
--source include/have_debug.inc
|
CREATE TABLE t1(c1 INT) ENGINE=InnoDB;
|
SET DEBUG_DBUG='+d,ib_create_table_fail_too_many_trx';
|
--error ER_TOO_MANY_CONCURRENT_TRXS
|
CREATE INDEX c1 ON t1 (c1);
|
--source include/restart_mysqld.inc
|
DROP TABLE t1;
|
The leak occurs when row_merge_create_index_graph() returns an error to row_merge_create_index(). The injected error is triggered when a SYS_INDEXES record is about to be inserted for the created index.
The error cannot be reproduced on MariaDB 10.0 or 10.1. A possible reason is that the code may have been refactored in WL#6501 TRUNCATE TABLE in MySQL 5.7.