Skip to content

Commit b168933

Browse files
authored
Merge pull request #652 from signal18/proxysql
rejoin active-passive default to master
2 parents 565fed6 + 0bdd12b commit b168933

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

cluster/prx_proxysql.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ func (proxy *ProxySQLProxy) Refresh() error {
345345

346346
// if server is Standalone, and writer set offline in ProxySQL
347347
if s.State == stateUnconn && bke.PrxStatus == "ONLINE" {
348-
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlInfo, "Monitor ProxySQL setting writer offline standalone server %s", s.URL)
348+
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlDbg, "Monitor ProxySQL setting writer offline standalone server %s", s.URL)
349349
err = psql.SetOffline(misc.Unbracket(s.Host), s.Port)
350350
if err != nil {
351351
cluster.StateMachine.AddState("ERR00070", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00070"], err, s.URL), ErrFrom: "PRX", ServerUrl: proxy.Name})
@@ -365,19 +365,18 @@ func (proxy *ProxySQLProxy) Refresh() error {
365365
} else if s.IsLeader() && (s.PrevState == stateUnconn || s.PrevState == stateFailed || (len(proxy.BackendsWrite) == 0 || !isFoundBackendWrite)) {
366366
// if the master comes back from a previously failed or standalone state, reintroduce it in
367367
// the appropriate HostGroup
368-
errstr := ""
369-
if err != nil {
370-
errstr = err.Error()
371-
}
372-
cluster.StateMachine.AddState("ERR00071", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00071"], proxy.Name, s.URL, errstr), ErrFrom: "PRX", ServerUrl: proxy.Name})
368+
373369
if psql.ExistAsWriterOrOffline(misc.Unbracket(s.Host), s.Port) {
374370
err = psql.SetOnline(misc.Unbracket(s.Host), s.Port)
375371
if err != nil {
376-
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlErr, "Monitor ProxySQL setting online failed server %s", s.URL)
372+
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlErr, "Monitor ProxySQL setting online failed server %s: %s", s.URL, err.Error())
377373
}
378374
} else {
379375
//scenario restart with failed leader
380376
err = psql.AddServerAsWriter(misc.Unbracket(s.Host), s.Port, proxy.UseSSL())
377+
if err != nil {
378+
cluster.StateMachine.AddState("ERR00071", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00071"], proxy.Name, s.URL), ErrFrom: "PRX", ServerUrl: proxy.Name})
379+
}
381380
}
382381
updated = true
383382

cluster/srv.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,10 @@ func (server *ServerMonitor) Ping(wg *sync.WaitGroup) {
517517
}
518518
}
519519
}
520-
if cluster.GetTopology() != topoMultiMasterWsrep || cluster.GetTopology() != topoMultiMasterGrouprep {
520+
521+
if cluster.Topology == topoActivePassive {
522+
server.SetState(stateMaster)
523+
} else if cluster.GetTopology() != topoMultiMasterWsrep || cluster.GetTopology() != topoMultiMasterGrouprep {
521524
if server.IsGroupReplicationSlave {
522525
server.SetState(stateSlave)
523526
} else {

cluster/srv_set.go

+2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,9 @@ func (server *ServerMonitor) SetReadWrite() error {
182182
}
183183

184184
func (server *ServerMonitor) SetMaintenance() {
185+
server.Lock()
185186
server.IsMaintenance = true
187+
server.Unlock()
186188
}
187189

188190
func (server *ServerMonitor) SetDSN() {

0 commit comments

Comments
 (0)