--source include/have_partition.inc CALL mtr.add_suppression("innodb_open_files should not be greater than the open_files_limit."); CALL mtr.add_suppression("Warning: you must raise the value of "); CALL mtr.add_suppression(" InnoDB: Warning: too many (.*) files stay open"); CALL mtr.add_suppression(" while the maximum"); CALL mtr.add_suppression("InnoDB: allowed value would be 1."); CALL mtr.add_suppression("InnoDB: You may need to raise the value of"); CALL mtr.add_suppression(" innodb_open_files in"); CALL mtr.add_suppression("InnoDB: my.cnf."); --disable_warnings DROP TABLE IF EXISTS `t1`; --enable_warnings # On some platforms the lowest possible open_files_limit is too high... let $max_open_files_limit= `SELECT @@open_files_limit > 1024`; if ($max_open_files_limit) { skip Need open_files_limit to be lower than 1025; } # --echo # Bug#46922: crash when adding partitions and open_files_limit is reached # # Note: # The test script ask for open_files_limit=5 # The server silently increase that to 5000 before asking the OS. # The OS may (or may not) reduce/increase open_files_limit, typically to 1024 # (Linux, see 'ulimit -n') # So, for the ADD PARTITIONS to really reach the 'Too many open files' # error, the test script attempts 600 partitions. # CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=MyISAM PARTITION BY KEY () PARTITIONS 1; INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11); --echo # if the bug exists, then crash will happen here --replace_regex /file '.*'/file '<partition file>'/ --error 23 ALTER TABLE t1 ADD PARTITION PARTITIONS 600; --sorted_result SELECT * FROM t1; DROP TABLE t1;