mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Problem was that controlling connection i.e. connection that executed the query SET GLOBAL wsrep_reject_queries = ALL_KILL; was also killed but server would try to send result from that query to controlling connection resulting a assertion mysqld: /home/jan/mysql/10.2-sst/include/mysql/psi/mysql_socket.h:738: inline_mysql_socket_send: Assertion `mysql_socket.fd != -1' failed. as socket was closed when controlling connection was closed. wsrep_close_client_connections() Do not close controlling connection and instead of wsrep_close_thread() we do now soft kill by THD::awake wsrep_reject_queries_update() Call wsrep_close_client_connections using current thd.
20 lines
721 B
Text
20 lines
721 B
Text
CREATE TABLE t1 (f1 INTEGER);
|
|
SET SESSION wsrep_reject_queries = ALL;
|
|
ERROR HY000: Variable 'wsrep_reject_queries' is a GLOBAL variable and should be set with SET GLOBAL
|
|
SET GLOBAL wsrep_reject_queries = ALL;
|
|
SELECT * FROM t1;
|
|
ERROR 08S01: WSREP has not yet prepared node for application use
|
|
SET GLOBAL wsrep_reject_queries = ALL_KILL;
|
|
SELECT * FROM t1;
|
|
Got one of the listed errors
|
|
SELECT * FROM t1;
|
|
ERROR 08S01: WSREP has not yet prepared node for application use
|
|
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
VARIABLE_VALUE = 2
|
|
1
|
|
INSERT INTO t1 VALUES (1);
|
|
SET GLOBAL wsrep_reject_queries = NONE;
|
|
SELECT COUNT(*) = 1 FROM t1;
|
|
COUNT(*) = 1
|
|
1
|
|
DROP TABLE t1;
|