mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.8 into 10.9
This commit is contained in:
@@ -2,6 +2,17 @@
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/count_sessions.inc
|
||||
|
||||
--connect(cancel_purge,localhost,root,,)
|
||||
# Purge can cause deadlock in the test, requesting page's RW_X_LATCH for trx
|
||||
# ids reseting, after trx 2 acqured RW_S_LATCH and suspended in debug sync point
|
||||
# lock_trx_handle_wait_enter, waiting for upd_cont signal, which must be
|
||||
# emitted after the last SELECT in this test. The last SELECT will hang waiting
|
||||
# for purge RW_X_LATCH releasing, and trx 2 will be rolled back by timeout.
|
||||
# The last SELECT will then be successfully executed instead of finishing by
|
||||
# lock wait timeout.
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
|
||||
--connection default
|
||||
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB;
|
||||
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB;
|
||||
|
||||
@@ -60,7 +71,6 @@ SET DEBUG_SYNC='now WAIT_FOR sel_locked';
|
||||
ROLLBACK;
|
||||
SET DEBUG_SYNC='now SIGNAL upd_cont';
|
||||
|
||||
SET innodb_lock_wait_timeout=1;
|
||||
SET DEBUG_SYNC="now WAIT_FOR upd_locked";
|
||||
# Locking queue:
|
||||
# (10,10) (20,20) (30,30)
|
||||
@@ -72,11 +82,12 @@ SET DEBUG_SYNC="now WAIT_FOR upd_locked";
|
||||
# sequential read (with rr_sequential() read record function), and requested
|
||||
# lock on (30,30). But the deadlock has not been determined yet.
|
||||
|
||||
SET DEBUG_SYNC="lock_wait_end SIGNAL upd_cont";
|
||||
SET SESSION innodb_lock_wait_timeout=1;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
# The deadlock will be determined in lock_wait() after lock wait timeout
|
||||
# expired.
|
||||
SELECT * FROM t WHERE a = 10 FOR UPDATE;
|
||||
SET DEBUG_SYNC="now SIGNAL upd_cont";
|
||||
|
||||
--connection con_3
|
||||
--reap
|
||||
@@ -98,5 +109,5 @@ SELECT * FROM t WHERE a = 10 FOR UPDATE;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t;
|
||||
DROP TABLE t2;
|
||||
|
||||
--disconnect cancel_purge
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
@@ -141,3 +141,9 @@ DROP TABLE child;
|
||||
|
||||
DROP TABLE parent;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-29479 I_S.INNODB_SYS_TABLESPACES doesn't have
|
||||
--echo # temporary tablespace information
|
||||
--echo #
|
||||
SELECT SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES WHERE name like 'innodb_temporary';
|
||||
|
@@ -208,6 +208,46 @@ ALTER TABLE t1 IMPORT TABLESPACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-23801 Assertion index->table->instant... failed
|
||||
--echo # in btr_pcur_store_position()
|
||||
--echo #
|
||||
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
||||
|
||||
CREATE TABLE t (
|
||||
pk int auto_increment,
|
||||
c01 char(255) not null default repeat('a',255),
|
||||
c02 char(255) default repeat('a',255),
|
||||
c03 char(255) default repeat('a',255),
|
||||
c04 char(255) default repeat('a',255),
|
||||
c05 char(255) not null default repeat('a',255),
|
||||
c06 char(255) default repeat('a',255),
|
||||
c07 char(255) default repeat('a',255),
|
||||
c08 char(255) not null default repeat('a',255),
|
||||
c09 char(255) default repeat('a',255),
|
||||
c10 char(255) default repeat('a',255),
|
||||
c11 char(255) default repeat('a',255),
|
||||
c12 char(255) not null default repeat('a',255),
|
||||
primary key (pk)
|
||||
) ENGINE=InnoDB CHARACTER SET ucs2;
|
||||
|
||||
INSERT INTO t () VALUES ();
|
||||
ALTER TABLE t ADD c INT;
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO t () VALUES (),();
|
||||
ROLLBACK;
|
||||
DELETE FROM t;
|
||||
|
||||
--source include/wait_all_purged.inc
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
|
||||
|
||||
CREATE TABLE tt ENGINE=InnoDB AS SELECT c FROM t;
|
||||
DROP TABLE t, tt;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
||||
--disable_query_log
|
||||
|
@@ -1,8 +1,6 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/not_embedded.inc
|
||||
# Valgrind has to be disabled as killing the server hard gives a lot of
|
||||
# leak warnings
|
||||
--source include/not_valgrind.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
# Flush any open myisam tables from previous tests
|
||||
FLUSH TABLES;
|
||||
@@ -13,24 +11,14 @@ call mtr.add_suppression("Found 1 prepared XA transactions");
|
||||
--echo # while rolling back recovered incomplete transactions
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t (a INT) ENGINE=InnoDB;
|
||||
let $size = 100;
|
||||
let $trx = 8;
|
||||
let $c = $size;
|
||||
BEGIN;
|
||||
--disable_query_log
|
||||
while ($c) {
|
||||
INSERT INTO t VALUES();
|
||||
dec $c;
|
||||
}
|
||||
--enable_query_log
|
||||
COMMIT;
|
||||
|
||||
let $c = $trx;
|
||||
connect (con$c,localhost,root,,);
|
||||
eval CREATE TABLE t$c (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB;
|
||||
XA START 'x';
|
||||
eval INSERT INTO t$c (a) SELECT NULL FROM t;
|
||||
eval INSERT INTO t$c (a) SELECT NULL FROM seq_1_to_$size;
|
||||
eval UPDATE t$c SET a=a+$size, b=a;
|
||||
eval DELETE FROM t$c;
|
||||
XA END 'x';
|
||||
@@ -41,28 +29,24 @@ while ($c)
|
||||
connect (con$c,localhost,root,,);
|
||||
eval CREATE TABLE t$c (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB;
|
||||
BEGIN;
|
||||
eval INSERT INTO t$c (a) SELECT NULL FROM t;
|
||||
eval INSERT INTO t$c (a) SELECT NULL FROM seq_1_to_$size;
|
||||
eval UPDATE t$c SET a=a+$size, b=a;
|
||||
eval DELETE FROM t$c;
|
||||
dec $c;
|
||||
}
|
||||
|
||||
INSERT INTO t1(a) SELECT NULL FROM t;
|
||||
INSERT INTO t1(a) SELECT NULL FROM t1;
|
||||
INSERT INTO t1(a) SELECT NULL FROM t1;
|
||||
INSERT INTO t1(a) SELECT NULL FROM t1;
|
||||
INSERT INTO t1(a) SELECT NULL FROM t1;
|
||||
INSERT INTO t1(a) SELECT NULL FROM seq_1_to_1600;
|
||||
|
||||
--connection default
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
CREATE TABLE u(a SERIAL) ENGINE=INNODB;
|
||||
CREATE TABLE MDEV_29559 (a TINYINT UNSIGNED PRIMARY KEY, KEY(a)) ENGINE=InnoDB;
|
||||
INSERT INTO MDEV_29559 VALUES (0x69);
|
||||
|
||||
FLUSH TABLES;
|
||||
|
||||
--let $shutdown_timeout=0
|
||||
--source include/restart_mysqld.inc
|
||||
--let $shutdown_timeout=60
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
# Perform a slow shutdown in order to roll back all recovered transactions
|
||||
# and to avoid locking conflicts with the DROP TABLE below.
|
||||
@@ -85,4 +69,4 @@ dec $c;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
DROP TABLE t,u;
|
||||
DROP TABLE MDEV_29559;
|
||||
|
Reference in New Issue
Block a user