aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_grpc_copy.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-27 15:56:49 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-27 15:56:49 -0700
commit53c3aad87528d57343afc5fdb3fb5107544af0fc (patch)
tree5ae5bcf7ccc3cee3c55372674753d7c1ca48dff9 /weed/server/volume_grpc_copy.go
parent6da87720eb24ecebf4c483ab57c5c7f9811321af (diff)
downloadseaweedfs-53c3aad87528d57343afc5fdb3fb5107544af0fc.tar.xz
seaweedfs-53c3aad87528d57343afc5fdb3fb5107544af0fc.zip
volume: add a note file to avoid incomplete volume files
fix https://github.com/chrislusf/seaweedfs/issues/1567
Diffstat (limited to 'weed/server/volume_grpc_copy.go')
-rw-r--r--weed/server/volume_grpc_copy.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/weed/server/volume_grpc_copy.go b/weed/server/volume_grpc_copy.go
index 115f57422..17372eef4 100644
--- a/weed/server/volume_grpc_copy.go
+++ b/weed/server/volume_grpc_copy.go
@@ -4,6 +4,7 @@ import (
"context"
"fmt"
"io"
+ "io/ioutil"
"math"
"os"
"time"
@@ -60,6 +61,8 @@ func (vs *VolumeServer) VolumeCopy(ctx context.Context, req *volume_server_pb.Vo
volumeFileName = storage.VolumeFileName(location.Directory, volFileInfoResp.Collection, int(req.VolumeId))
+ ioutil.WriteFile(volumeFileName+".note", []byte(fmt.Sprintf("copying from %s", req.SourceDataNode)), 0755)
+
// println("source:", volFileInfoResp.String())
if err := vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.DatFileSize, volumeFileName, ".dat", false, true); err != nil {
return err
@@ -73,6 +76,8 @@ func (vs *VolumeServer) VolumeCopy(ctx context.Context, req *volume_server_pb.Vo
return err
}
+ os.Remove(volumeFileName+".note")
+
return nil
})