Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-23248 Server crashes in mi_extra / ha_partition::loop_extra_alte…
…r 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.
- Loading branch information
Showing
4 changed files
with
38 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# | ||
# MDEV-23248 Server crashes in mi_extra / | ||
# ha_partition::loop_extra_alter upon REORGANIZE | ||
# | ||
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"; | ||
ALTER TABLE t1 REORGANIZE PARTITION p1,p2 INTO (PARTITION p1 VALUES LESS THAN (5), PARTITION p2 VALUES LESS THAN MAXVALUE); | ||
ERROR 42000: Table 't1' uses an extension that doesn't exist in this MariaDB version | ||
set @@debug_dbug=@org_debug; | ||
DROP TABLE t1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters