Fix "no more writable volumes" error when volume grows and master leader changed at the same time (#5771)

This commit is contained in:
小羽 2024-07-13 01:49:15 +08:00 committed by GitHub
parent e8537d7172
commit cb5dae0c9c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -27,9 +27,13 @@ func (ms *MasterServer) ProcessGrowRequest() {
break
}
option := req.Option
vl := ms.Topo.GetVolumeLayout(option.Collection, option.ReplicaPlacement, option.Ttl, option.DiskType)
if !ms.Topo.IsLeader() {
//discard buffered requests
time.Sleep(time.Second * 1)
vl.DoneGrowRequest()
continue
}
@ -42,9 +46,6 @@ func (ms *MasterServer) ProcessGrowRequest() {
return !found
})
option := req.Option
vl := ms.Topo.GetVolumeLayout(option.Collection, option.ReplicaPlacement, option.Ttl, option.DiskType)
// not atomic but it's okay
if !found && vl.ShouldGrowVolumes(option) {
filter.Store(req, nil)