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

View File

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