diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2018-11-22 16:30:20 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2018-11-26 08:11:56 +0200 |
commit | 244cc35e7b929376e445adad8996de154ebc9c8f (patch) | |
tree | 4884474635901ffddb2d8bbe7fe0c4f687c0792d /sql/wsrep_var.cc | |
parent | 8324e5e84dc786b2d4a07d7798f26ddea239159e (diff) | |
download | mariadb-git-244cc35e7b929376e445adad8996de154ebc9c8f.tar.gz |
MDEV-17801: Galera test failure on galera_var_reject_queries
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.
Diffstat (limited to 'sql/wsrep_var.cc')
-rw-r--r-- | sql/wsrep_var.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc index 718676025f9..3959746156a 100644 --- a/sql/wsrep_var.cc +++ b/sql/wsrep_var.cc @@ -398,7 +398,8 @@ bool wsrep_reject_queries_update(sys_var *self, THD* thd, enum_var_type type) WSREP_INFO("Rejecting client queries due to manual setting"); break; case WSREP_REJECT_ALL_KILL: - wsrep_close_client_connections(FALSE); + /* close all client connections, but this one */ + wsrep_close_client_connections(FALSE, thd); WSREP_INFO("Rejecting client queries and killing connections due to manual setting"); break; default: |