bug fix: stopMaster

This commit is contained in:
finley
2022-12-21 19:00:21 +08:00
parent 0d96ad295d
commit a6d07ce5df

View File

@@ -371,10 +371,10 @@ var pingBytes = protocol.MakeMultiBulkReply(utils.ToCmdLine("ping")).ToBytes()
const maxBacklogSize = 10 * 1024 * 1024 // 10MB const maxBacklogSize = 10 * 1024 * 1024 // 10MB
func (mdb *MultiDB) masterCron() { func (mdb *MultiDB) masterCron() {
if mdb.role != masterRole { mdb.masterStatus.mu.Lock()
if len(mdb.masterStatus.slaveMap) == 0 { // no slaves, do nothing
return return
} }
mdb.masterStatus.mu.Lock()
if mdb.masterStatus.bgSaveState == bgSaveFinish { if mdb.masterStatus.bgSaveState == bgSaveFinish {
mdb.masterStatus.backlog.appendBytes(pingBytes) mdb.masterStatus.backlog.appendBytes(pingBytes)
} }
@@ -443,11 +443,13 @@ func (mdb *MultiDB) stopMaster() {
} }
// clean master status // clean master status
if mdb.aofHandler != nil {
mdb.aofHandler.RemoveListener(mdb.masterStatus.aofListener) mdb.aofHandler.RemoveListener(mdb.masterStatus.aofListener)
}
_ = os.Remove(mdb.masterStatus.rdbFilename) _ = os.Remove(mdb.masterStatus.rdbFilename)
mdb.masterStatus.rdbFilename = "" mdb.masterStatus.rdbFilename = ""
mdb.masterStatus.replId = "" mdb.masterStatus.replId = ""
mdb.masterStatus.backlog = nil mdb.masterStatus.backlog = &replBacklog{}
mdb.masterStatus.slaveMap = make(map[redis.Connection]*slaveClient) mdb.masterStatus.slaveMap = make(map[redis.Connection]*slaveClient)
mdb.masterStatus.waitSlaves = make(map[*slaveClient]struct{}) mdb.masterStatus.waitSlaves = make(map[*slaveClient]struct{})
mdb.masterStatus.onlineSlaves = make(map[*slaveClient]struct{}) mdb.masterStatus.onlineSlaves = make(map[*slaveClient]struct{})