MDEV-23065 : Crash after setting wsrep_on to ON dynamically and reconnect
At end_connection make sure we have wsrep before trying to free connection assigned to it.
This commit is contained in:
parent
4e43e2f92d
commit
d1e9a4c15c
@ -1,3 +1,5 @@
|
|||||||
|
connection node_1;
|
||||||
|
connection node_2;
|
||||||
connection node_2;
|
connection node_2;
|
||||||
SET SESSION wsrep_sync_wait = 0;
|
SET SESSION wsrep_sync_wait = 0;
|
||||||
SET GLOBAL wsrep_provider_options="gmcast.isolate=2";
|
SET GLOBAL wsrep_provider_options="gmcast.isolate=2";
|
||||||
|
@ -8,6 +8,11 @@
|
|||||||
--source include/galera_cluster.inc
|
--source include/galera_cluster.inc
|
||||||
--source include/galera_have_debug_sync.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.
|
# Force node_2 gcomm background thread to terminate via exception.
|
||||||
--connection node_2
|
--connection node_2
|
||||||
--let $wsrep_cluster_address = `SELECT @@wsrep_cluster_address`
|
--let $wsrep_cluster_address = `SELECT @@wsrep_cluster_address`
|
||||||
@ -36,3 +41,5 @@ SET SESSION wsrep_on=0;
|
|||||||
|
|
||||||
--connection node_2
|
--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.");
|
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
|
||||||
|
@ -1112,7 +1112,7 @@ void end_connection(THD *thd)
|
|||||||
{
|
{
|
||||||
NET *net= &thd->net;
|
NET *net= &thd->net;
|
||||||
#ifdef WITH_WSREP
|
#ifdef WITH_WSREP
|
||||||
if (WSREP(thd))
|
if (WSREP(thd) && wsrep)
|
||||||
{
|
{
|
||||||
wsrep_status_t rcode= wsrep->free_connection(wsrep, thd->thread_id);
|
wsrep_status_t rcode= wsrep->free_connection(wsrep, thd->thread_id);
|
||||||
if (rcode) {
|
if (rcode) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user