Browse Source

EC: clean up if failed in the middle

pull/2348/head
Chris Lu 4 years ago
parent
commit
a243d7e047
  1. 13
      weed/server/volume_grpc_erasure_coding.go

13
weed/server/volume_grpc_erasure_coding.go

@ -49,6 +49,17 @@ func (vs *VolumeServer) VolumeEcShardsGenerate(ctx context.Context, req *volume_
return nil, fmt.Errorf("existing collection:%v unexpected input: %v", v.Collection, req.Collection) return nil, fmt.Errorf("existing collection:%v unexpected input: %v", v.Collection, req.Collection)
} }
shouldCleanup := true
defer func() {
if !shouldCleanup {
return
}
for i := 0; i < erasure_coding.TotalShardsCount; i++ {
os.Remove(fmt.Sprintf("%s.ec%2d", baseFileName, i))
}
os.Remove(v.IndexFileName() + ".ecx")
}()
// write .ec00 ~ .ec13 files // write .ec00 ~ .ec13 files
if err := erasure_coding.WriteEcFiles(baseFileName); err != nil { if err := erasure_coding.WriteEcFiles(baseFileName); err != nil {
return nil, fmt.Errorf("WriteEcFiles %s: %v", baseFileName, err) return nil, fmt.Errorf("WriteEcFiles %s: %v", baseFileName, err)
@ -64,6 +75,8 @@ func (vs *VolumeServer) VolumeEcShardsGenerate(ctx context.Context, req *volume_
return nil, fmt.Errorf("WriteEcFiles %s: %v", baseFileName, err) return nil, fmt.Errorf("WriteEcFiles %s: %v", baseFileName, err)
} }
shouldCleanup = false
return &volume_server_pb.VolumeEcShardsGenerateResponse{}, nil return &volume_server_pb.VolumeEcShardsGenerateResponse{}, nil
} }

Loading…
Cancel
Save