From a8617c1a39f78f43f546755e87d895ccbcafc0fb Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 13 Aug 2021 01:54:35 -0700 Subject: [PATCH] tail volume: fix zero cookie problem from batch deletion --- weed/storage/volume_write.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/weed/storage/volume_write.go b/weed/storage/volume_write.go index a286c5dd5..ad3dad388 100644 --- a/weed/storage/volume_write.go +++ b/weed/storage/volume_write.go @@ -143,7 +143,10 @@ func (v *Volume) doWriteRequest(n *needle.Needle) (offset uint64, size Size, isU err = fmt.Errorf("reading existing needle: %v", existingNeedleReadErr) return } - if existingNeedle.Cookie != n.Cookie { + if n.Cookie == 0 { + // this is from batch deletion, and read back again when tailing a remote volume + n.Cookie = existingNeedle.Cookie + } else if existingNeedle.Cookie != n.Cookie { glog.V(0).Infof("write cookie mismatch: existing %s, new %s", needle.NewFileIdFromNeedle(v.Id, existingNeedle), needle.NewFileIdFromNeedle(v.Id, n)) err = fmt.Errorf("mismatching cookie %x", n.Cookie)