aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/server/volume_grpc_erasure_coding.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/weed/server/volume_grpc_erasure_coding.go b/weed/server/volume_grpc_erasure_coding.go
index 30ed5f15f..364045d9b 100644
--- a/weed/server/volume_grpc_erasure_coding.go
+++ b/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)
}
+ 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
if err := erasure_coding.WriteEcFiles(baseFileName); err != nil {
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)
}
+ shouldCleanup = false
+
return &volume_server_pb.VolumeEcShardsGenerateResponse{}, nil
}