mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
The long semaphore wait appeared to be the caused by the following pattern in the MTR test: ``` SET DEBUG_SYNC = "now SIGNAL wsrep_after_certification_continue"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb; ``` Raising two signals, one right after another, caused one signal to overwrite the other, before the signal was consumed by the thread. This caused one thread to be stuck until the debug sync point would timeout.
46 lines
945 B
Text
46 lines
945 B
Text
connection node_1;
|
|
connection node_2;
|
|
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
|
|
INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'),(6, 'a');
|
|
connection node_2;
|
|
Unloading wsrep provider ...
|
|
SET GLOBAL wsrep_provider = 'none';
|
|
connection node_1;
|
|
UPDATE t1 SET f2 = 'b' WHERE f1 > 1;
|
|
UPDATE t1 SET f2 = 'c' WHERE f1 > 2;
|
|
connection node_2;
|
|
Loading wsrep_provider ...
|
|
SET SESSION wsrep_on=OFF;
|
|
SET SESSION wsrep_on=ON;
|
|
connection node_1;
|
|
UPDATE t1 SET f2 = 'd' WHERE f1 > 3;
|
|
connection node_2;
|
|
connection node_1;
|
|
UPDATE t1 SET f2 = 'e' WHERE f1 > 4;
|
|
connection node_2;
|
|
Performing --wsrep-recover ...
|
|
Starting server ...
|
|
Using --wsrep-start-position when starting mysqld ...
|
|
connection node_1;
|
|
UPDATE t1 SET f2 = 'f' WHERE f1 > 5;
|
|
SELECT * FROM t1;
|
|
f1 f2
|
|
1 a
|
|
2 b
|
|
3 c
|
|
4 d
|
|
5 e
|
|
6 f
|
|
connection node_2;
|
|
SELECT * FROM t1;
|
|
f1 f2
|
|
1 a
|
|
2 b
|
|
3 c
|
|
4 d
|
|
5 e
|
|
6 f
|
|
connection node_1;
|
|
DROP TABLE t1;
|
|
disconnect node_2;
|
|
disconnect node_1;
|