HEX
Server: nginx/1.26.1
System: Linux iZrj9cbdvwu1cot8sjlyzlZ 5.10.134-15.al8.x86_64 #1 SMP Thu Jul 20 00:44:04 CST 2023 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/mysql/mysql-test/t/partition_open_files_limit.test
--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;