mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-20 04:17:56 +08:00
EC: clean up if failed in the middle
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user