Skip to content

Commit

Permalink
MDEV-23065 : Crash after setting wsrep_on to ON dynamically and recon…
Browse files Browse the repository at this point in the history
…nect

At end_connection make sure we have wsrep before trying to free
connection assigned to it.
  • Loading branch information
Jan Lindström committed Dec 19, 2020
1 parent 4e43e2f commit d1e9a4c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
2 changes: 2 additions & 0 deletions mysql-test/suite/galera/r/galera#500.result
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
connection node_1;
connection node_2;
connection node_2;
SET SESSION wsrep_sync_wait = 0;
SET GLOBAL wsrep_provider_options="gmcast.isolate=2";
Expand Down
7 changes: 7 additions & 0 deletions mysql-test/suite/galera/t/galera#500.test
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
--source include/galera_cluster.inc
--source include/galera_have_debug_sync.inc

# Save original auto_increment_offset values.
--let $node_1=node_1
--let $node_2=node_2
--source include/auto_increment_offset_save.inc

# Force node_2 gcomm background thread to terminate via exception.
--connection node_2
--let $wsrep_cluster_address = `SELECT @@wsrep_cluster_address`
Expand Down Expand Up @@ -36,3 +41,5 @@ SET SESSION wsrep_on=0;

--connection node_2
CALL mtr.add_suppression("WSREP: exception from gcomm, backend must be restarted: Gcomm backend termination was requested by setting gmcast.isolate=2.");

--source include/auto_increment_offset_restore.inc
2 changes: 1 addition & 1 deletion sql/sql_connect.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1112,7 +1112,7 @@ void end_connection(THD *thd)
{
NET *net= &thd->net;
#ifdef WITH_WSREP
if (WSREP(thd))
if (WSREP(thd) && wsrep)
{
wsrep_status_t rcode= wsrep->free_connection(wsrep, thd->thread_id);
if (rcode) {
Expand Down

0 comments on commit d1e9a4c

Please sign in to comment.