@@ -454,11 +454,11 @@ func (server *ServerMonitor) Ping(wg *sync.WaitGroup) {
454
454
// If we reached this stage with a previously failed server, reintroduce
455
455
// it as unconnected server.master
456
456
if server .PrevState == stateFailed || server .PrevState == stateErrorAuth /*|| server.PrevState == stateSuspect*/ {
457
- server .ClusterGroup .LogPrintf (LvlDbg , "State comparison reinitialized failed server %s as unconnected" , server .URL )
458
- if server .ClusterGroup .Conf .ReadOnly && server .HaveWsrep == false && server .ClusterGroup .IsDiscovered () {
457
+ server .ClusterGroup .LogPrintf (LvlInfo , "State changed, init failed server %s as unconnected" , server .URL )
458
+ if server .ClusterGroup .Conf .ReadOnly && ! server .HaveWsrep && server .ClusterGroup .IsDiscovered () {
459
459
//GetMaster abstract master for galera multi master and master slave
460
460
if server .GetCluster ().GetMaster () != nil {
461
- if server .ClusterGroup .Status == ConstMonitorActif && server .ClusterGroup . master .Id != server .Id && ! server .ClusterGroup .IsInIgnoredReadonly (server ) && ! server .ClusterGroup .IsInFailover () {
461
+ if server .ClusterGroup .Status == ConstMonitorActif && server .GetCluster (). GetMaster () .Id != server .Id && ! server .ClusterGroup .IsInIgnoredReadonly (server ) && ! server .ClusterGroup .IsInFailover () {
462
462
server .ClusterGroup .LogPrintf (LvlInfo , "Setting Read Only on unconnected server %s as active monitor and other master is discovered" , server .URL )
463
463
server .SetReadOnly ()
464
464
} else if server .ClusterGroup .Status == ConstMonitorStandby && server .ClusterGroup .Conf .Arbitration && ! server .ClusterGroup .IsInIgnoredReadonly (server ) && ! server .ClusterGroup .IsInFailover () {
@@ -483,9 +483,9 @@ func (server *ServerMonitor) Ping(wg *sync.WaitGroup) {
483
483
// Master will never get discovery in topology if it does not get unconnected first it default to suspect
484
484
// if server.ClusterGroup.GetTopology() != topoMultiMasterWsrep {
485
485
server .SetState (stateUnconn )
486
- server .ClusterGroup .LogPrintf (LvlDbg , "State unconnected set by non-master rule on server %s" , server .URL )
486
+ server .ClusterGroup .LogPrintf (LvlInfo , "From state %s to unconnected and non leader on server %s" , server . PrevState , server .URL )
487
487
// }
488
- if server .ClusterGroup .Conf .ReadOnly && server .HaveWsrep == false && server .ClusterGroup .IsDiscovered () && ! server .ClusterGroup .IsInIgnoredReadonly (server ) && ! server .ClusterGroup .IsInFailover () {
488
+ if server .ClusterGroup .Conf .ReadOnly && ! server .HaveWsrep && server .ClusterGroup .IsDiscovered () && ! server .ClusterGroup .IsInIgnoredReadonly (server ) && ! server .ClusterGroup .IsInFailover () {
489
489
server .ClusterGroup .LogPrintf (LvlInfo , "Setting Read Only on unconnected server: %s no master state and replication found" , server .URL )
490
490
server .SetReadOnly ()
491
491
}
@@ -494,10 +494,12 @@ func (server *ServerMonitor) Ping(wg *sync.WaitGroup) {
494
494
server .ClusterGroup .backendStateChangeProxies ()
495
495
server .SendAlert ()
496
496
}
497
+ } else if server .GetCluster ().GetMaster () != nil && server .GetCluster ().GetMaster ().Id != server .Id && server .PrevState == stateSuspect && ! server .HaveWsrep && server .ClusterGroup .IsDiscovered () && ! server .ClusterGroup .IsInFailover () {
498
+ // a case of a standalone transite to suspect but never get to standalone back
499
+ server .SetState (stateUnconn )
497
500
}
498
-
499
501
} else if server .ClusterGroup .IsActive () && errss == nil && (server .PrevState == stateFailed ) {
500
-
502
+ // Is Slave
501
503
server .rejoinSlave (ss )
502
504
}
503
505
0 commit comments