Skip to content

Commit

Permalink
Merge pull request #652 from signal18/proxysql
Browse files Browse the repository at this point in the history
rejoin active-passive default to master
  • Loading branch information
svaroqui authored Jun 14, 2024
2 parents 565fed6 + 0bdd12b commit b168933
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
13 changes: 6 additions & 7 deletions cluster/prx_proxysql.go
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ func (proxy *ProxySQLProxy) Refresh() error {

// if server is Standalone, and writer set offline in ProxySQL
if s.State == stateUnconn && bke.PrxStatus == "ONLINE" {
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlInfo, "Monitor ProxySQL setting writer offline standalone server %s", s.URL)
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlDbg, "Monitor ProxySQL setting writer offline standalone server %s", s.URL)
err = psql.SetOffline(misc.Unbracket(s.Host), s.Port)
if err != nil {
cluster.StateMachine.AddState("ERR00070", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00070"], err, s.URL), ErrFrom: "PRX", ServerUrl: proxy.Name})
Expand All @@ -365,19 +365,18 @@ func (proxy *ProxySQLProxy) Refresh() error {
} else if s.IsLeader() && (s.PrevState == stateUnconn || s.PrevState == stateFailed || (len(proxy.BackendsWrite) == 0 || !isFoundBackendWrite)) {
// if the master comes back from a previously failed or standalone state, reintroduce it in
// the appropriate HostGroup
errstr := ""
if err != nil {
errstr = err.Error()
}
cluster.StateMachine.AddState("ERR00071", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00071"], proxy.Name, s.URL, errstr), ErrFrom: "PRX", ServerUrl: proxy.Name})

if psql.ExistAsWriterOrOffline(misc.Unbracket(s.Host), s.Port) {
err = psql.SetOnline(misc.Unbracket(s.Host), s.Port)
if err != nil {
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlErr, "Monitor ProxySQL setting online failed server %s", s.URL)
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, config.LvlErr, "Monitor ProxySQL setting online failed server %s: %s", s.URL, err.Error())
}
} else {
//scenario restart with failed leader
err = psql.AddServerAsWriter(misc.Unbracket(s.Host), s.Port, proxy.UseSSL())
if err != nil {
cluster.StateMachine.AddState("ERR00071", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00071"], proxy.Name, s.URL), ErrFrom: "PRX", ServerUrl: proxy.Name})
}
}
updated = true

Expand Down
5 changes: 4 additions & 1 deletion cluster/srv.go
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,10 @@ func (server *ServerMonitor) Ping(wg *sync.WaitGroup) {
}
}
}
if cluster.GetTopology() != topoMultiMasterWsrep || cluster.GetTopology() != topoMultiMasterGrouprep {

if cluster.Topology == topoActivePassive {
server.SetState(stateMaster)
} else if cluster.GetTopology() != topoMultiMasterWsrep || cluster.GetTopology() != topoMultiMasterGrouprep {
if server.IsGroupReplicationSlave {
server.SetState(stateSlave)
} else {
Expand Down
2 changes: 2 additions & 0 deletions cluster/srv_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,9 @@ func (server *ServerMonitor) SetReadWrite() error {
}

func (server *ServerMonitor) SetMaintenance() {
server.Lock()
server.IsMaintenance = true
server.Unlock()
}

func (server *ServerMonitor) SetDSN() {
Expand Down

0 comments on commit b168933

Please sign in to comment.