ec: Check all parts are saved #1553

Merged
fyrchik merged 1 commit from dstepanov-yadro/frostfs-node:fix/incomplete_ec_put_v042 into support/v0.42 2024-12-11 10:30:54 +00:00

View file

@ -25,7 +25,10 @@ import (
var _ transformer.ObjectWriter = (*ecWriter)(nil) var _ transformer.ObjectWriter = (*ecWriter)(nil)
var errUnsupportedECObject = errors.New("object is not supported for erasure coding") var (
errUnsupportedECObject = errors.New("object is not supported for erasure coding")
errFailedToSaveAllECParts = errors.New("failed to save all EC parts")
)
type ecWriter struct { type ecWriter struct {
cfg *cfg cfg *cfg
@ -235,6 +238,13 @@ func (e *ecWriter) writeRawObject(ctx context.Context, obj *objectSDK.Object) er
singleErr: err, singleErr: err,
} }
} }
for idx := range partsProcessed {
if !partsProcessed[idx].Load() {
return errIncompletePut{
singleErr: errFailedToSaveAllECParts,
}
}
}
return nil return nil
} }