mariadb/mysql-test/suite/parts/t/reorganize.test
Monty 311b7f94e6 MDEV-23248 Server crashes in mi_extra / ha_partition::loop_extra_alter upon REORGANIZE
This also fixes some issues with
MDEV-23730 s3.replication_partition 'innodb,mix' segv

The problem was that mysql_change_partitions() closes all handler files
in case of error, which was not properly reflected in
fast_alter_partition_table(). This caused handle_alter_part_error() to
try to close already closed tables, which caused the crash.

Fixed fast_alter_partion_table() to reflect when tables are opened.
I also fixed that ha_partition::change_partitions() resets m_new_file in
case of errors.
Either of the above changes fixes the issue, but both are needed to ensure
that the code works as expected.
2020-10-16 19:48:36 +03:00

20 lines
770 B
Text

--source include/have_sequence.inc
--source include/have_partition.inc
--source include/have_debug.inc
--echo #
--echo # MDEV-23248 Server crashes in mi_extra /
--echo # ha_partition::loop_extra_alter upon REORGANIZE
--echo #
CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM PARTITION BY RANGE (a) SUBPARTITION BY HASH (a) SUBPARTITIONS 70 (PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LESS THAN MAXVALUE);
INSERT INTO t1 SELECT 4, 6 FROM seq_1_to_131072;
UPDATE t1 SET a = 7;
set @org_debug=@@debug_dbug;
set @@debug_dbug="+d,debug_abort_copy_partitions";
--error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t1 REORGANIZE PARTITION p1,p2 INTO (PARTITION p1 VALUES LESS THAN (5), PARTITION p2 VALUES LESS THAN MAXVALUE);
set @@debug_dbug=@org_debug;
DROP TABLE t1;