File: flush-hang.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (48 lines) | stat: -rw-r--r-- 1,499 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

--echo #
--echo #Bug #21133329   HANGING "SYSTEM LOCK" WHEN EXECUTING "FLUSH TABLE ... FOR EXPORT"
--echo #

--source include/have_debug.inc

CREATE TABLE t1 (
	c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	c2 BIGINT,
	c3 VARCHAR(2048),
	c4 VARCHAR(2048),
	INDEX idx1(c2),
	INDEX idx2(c3(512)),
	INDEX idx3(c4(512))) Engine=InnoDB charset latin1;

CREATE TABLE t2 ( f1 int PRIMARY KEY) engine=innodb;

# Stop purge so that it doesn't remove the delete marked entries.
SET GLOBAL INNODB_PURGE_STOP_NOW=ON;

# Disable change buffer merge from the master thread, additionally
# enable aggressive flushing so that more changes are buffered.
SET GLOBAL innodb_disable_background_merge=ON;
SET GLOBAL innodb_stats_persistent=OFF;
show variables like '%innodb_stats_persistent%';

INSERT INTO t1(c2, c3, c4) VALUES
	(1, REPEAT('a', 2048), REPEAT('a', 2048)),
	(2, REPEAT('b', 2048), REPEAT('b', 2048)),
	(3, REPEAT('c', 2048), REPEAT('c', 2048)),
	(4, REPEAT('d', 2048), REPEAT('d', 2048));

INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;
INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;
INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;
INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;
INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;
INSERT INTO t1(c2, c3, c4) SELECT c2, c3, c4 FROM t1;

FLUSH TABLES t2 FOR EXPORT;
UNLOCK TABLES;

SET GLOBAL innodb_disable_background_merge=OFF;
SET GLOBAL INNODB_PURGE_RUN_NOW=ON;
SET GLOBAL innodb_stats_persistent=ON;

DROP TABLE t1,t2;