mirror of
https://github.com/MariaDB/server.git
synced 2025-11-28 17:36:30 +03:00
* Mitigate race candition when got_no_such_table remains uncleared. * Remove warnings about deprecated SELECT .. FROM .. INTO ... MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes
54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
--source include/have_debug.inc
|
|
--source include/have_innodb.inc
|
|
|
|
--echo #
|
|
--echo # MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes
|
|
--echo #
|
|
|
|
--let $datadir= `select @@datadir`
|
|
set @saved_frequency= @@global.innodb_purge_rseg_truncate_frequency;
|
|
set global innodb_purge_rseg_truncate_frequency= 1;
|
|
set @saved_dbug= @@global.debug_dbug;
|
|
set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2";
|
|
|
|
create table t1 (
|
|
pk serial, vb tinyblob as (b) virtual, b tinyblob,
|
|
primary key(pk), index (vb(64)))
|
|
engine innodb;
|
|
|
|
insert ignore into t1 (b) values ('foo');
|
|
|
|
select * into outfile 'load.data' from t1;
|
|
load data infile 'load.data' replace into table t1;
|
|
|
|
set debug_sync= "now WAIT_FOR latch_released";
|
|
set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1";
|
|
drop table t1;
|
|
--remove_file $datadir/test/load.data
|
|
|
|
set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table";
|
|
|
|
create table t1 (
|
|
pk serial, vb tinyblob as (b) virtual, b tinyblob,
|
|
primary key(pk), index (vb(64)))
|
|
engine innodb;
|
|
|
|
insert ignore into t1 (b) values ('foo');
|
|
|
|
select * into outfile 'load.data' from t1;
|
|
load data infile 'load.data' replace into table t1;
|
|
|
|
set debug_sync= "now WAIT_FOR got_no_such_table";
|
|
# FIXME: Racing condition here:
|
|
# 1. purge thread goes into sending got_no_such_table
|
|
# 2. test thread finishes debug_sync= "RESET" below
|
|
# 3. purge thread sends got_no_such_table
|
|
set global debug_dbug= @saved_dbug;
|
|
|
|
# cleanup
|
|
drop table t1;
|
|
--remove_file $datadir/test/load.data
|
|
|
|
set global innodb_purge_rseg_truncate_frequency= @saved_frequency;
|
|
set debug_sync= "RESET";
|