Browse Source

same logic as grpc assign

fix https://github.com/seaweedfs/seaweedfs/issues/5213
pull/5237/head
chrislu 11 months ago
parent
commit
49fcb48e04
  1. 5
      weed/server/master_grpc_server_volume.go
  2. 7
      weed/server/master_server_handlers.go
  3. 1
      weed/topology/volume_growth.go

5
weed/server/master_grpc_server_volume.go

@ -61,11 +61,6 @@ func (ms *MasterServer) ProcessGrowRequest() {
} }
vl.DoneGrowRequest() vl.DoneGrowRequest()
if req.ErrCh != nil {
req.ErrCh <- err
close(req.ErrCh)
}
filter.Delete(req) filter.Delete(req)
}() }()

7
weed/server/master_server_handlers.go

@ -135,17 +135,10 @@ func (ms *MasterServer) dirAssignHandler(w http.ResponseWriter, r *http.Request)
writeJsonQuiet(w, r, http.StatusNotFound, operation.AssignResult{Error: "No free volumes left for " + option.String()}) writeJsonQuiet(w, r, http.StatusNotFound, operation.AssignResult{Error: "No free volumes left for " + option.String()})
return return
} }
errCh := make(chan error, 1)
vl.AddGrowRequest() vl.AddGrowRequest()
ms.vgCh <- &topology.VolumeGrowRequest{ ms.vgCh <- &topology.VolumeGrowRequest{
Option: option, Option: option,
Count: writableVolumeCount, Count: writableVolumeCount,
ErrCh: errCh,
}
if err := <-errCh; err != nil {
writeJsonError(w, r, http.StatusInternalServerError, fmt.Errorf("cannot grow volume group! %v", err))
return
} }
} }
if err != nil { if err != nil {

1
weed/topology/volume_growth.go

@ -29,7 +29,6 @@ This package is created to resolve these replica placement issues:
type VolumeGrowRequest struct { type VolumeGrowRequest struct {
Option *VolumeGrowOption Option *VolumeGrowOption
Count int Count int
ErrCh chan error
} }
type VolumeGrowOption struct { type VolumeGrowOption struct {

Loading…
Cancel
Save