Fix volume replica parallelization within ec.encode. (#6377)

See 826edd5d.
This commit is contained in:
Lisandro Pin 2024-12-20 02:46:11 +01:00 committed by GitHub
parent ba0707af64
commit 4d91ec359b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -119,7 +119,7 @@ func (c *commandEcEncode) Do(args []string, commandEnv *CommandEnv, writer io.Wr
// encode all requested volumes...
for _, vid := range volumeIds {
if err = doEcEncode(commandEnv, *collection, vid, *parallelize); err != nil {
if err = doEcEncode(commandEnv, *collection, vid, *maxParallelization); err != nil {
return fmt.Errorf("ec encode for volume %d: %v", vid, err)
}
}
@ -131,7 +131,7 @@ func (c *commandEcEncode) Do(args []string, commandEnv *CommandEnv, writer io.Wr
return nil
}
func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId, parallelize bool) error {
func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId, maxParallelization int) error {
if !commandEnv.isLocked() {
return fmt.Errorf("lock is lost")
}
@ -143,9 +143,7 @@ func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId,
}
// mark the volume as readonly
ewg := ErrorWaitGroup{
parallelize: parallelize,
}
ewg := NewErrorWaitGroup(maxParallelization)
for _, location := range locations {
ewg.Add(func() error {
if err := markVolumeReplicaWritable(commandEnv.option.GrpcDialOption, vid, location, false, false); err != nil {