aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_grpc_erasure_coding.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-06-21 01:14:10 -0700
committerChris Lu <chris.lu@gmail.com>2019-06-21 01:14:10 -0700
commitf88a8bda7bbc58ce14fc45235085f71a7e1831ad (patch)
tree928f48aee4694af0b25ba4e07cdbf4ae6020d6e3 /weed/server/volume_grpc_erasure_coding.go
parent613a2e8060c41aab7e58623b8f22b8ed87493b41 (diff)
downloadseaweedfs-f88a8bda7bbc58ce14fc45235085f71a7e1831ad.tar.xz
seaweedfs-f88a8bda7bbc58ce14fc45235085f71a7e1831ad.zip
ec deletion works
Diffstat (limited to 'weed/server/volume_grpc_erasure_coding.go')
-rw-r--r--weed/server/volume_grpc_erasure_coding.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/weed/server/volume_grpc_erasure_coding.go b/weed/server/volume_grpc_erasure_coding.go
index 58eefc6dc..8140a06f6 100644
--- a/weed/server/volume_grpc_erasure_coding.go
+++ b/weed/server/volume_grpc_erasure_coding.go
@@ -234,6 +234,15 @@ func (vs *VolumeServer) VolumeEcShardRead(req *volume_server_pb.VolumeEcShardRea
return fmt.Errorf("not found ec shard %d.%d", req.VolumeId, req.ShardId)
}
+ if req.FileKey != 0 {
+ _, size, _ := ecVolume.FindNeedleFromEcx(types.Uint64ToNeedleId(req.FileKey))
+ if size == types.TombstoneFileSize {
+ return stream.Send(&volume_server_pb.VolumeEcShardReadResponse{
+ IsDeleted: true,
+ })
+ }
+ }
+
bufSize := req.Size
if bufSize > BufferSizeLimit {
bufSize = BufferSizeLimit