Only when tailing volume, the zero-ed cookie should skip checking.

This only happens when checkCookie == false and fsync == false.
This commit is contained in:
Chris Lu
2021-08-13 02:09:35 -07:00
parent a8617c1a39
commit 78e8ddf910
6 changed files with 16 additions and 14 deletions

View File

@@ -48,7 +48,7 @@ func (vs *VolumeServer) FetchAndWriteNeedle(ctx context.Context, req *volume_ser
// copied from *Needle.prepareWriteBuffer()
n.Size = 4 + types.Size(n.DataSize) + 1
n.Checksum = needle.NewCRC(n.Data)
if _, err = vs.store.WriteVolumeNeedle(v.Id, n, false); err != nil {
if _, err = vs.store.WriteVolumeNeedle(v.Id, n, true, false); err != nil {
return nil, fmt.Errorf("write needle %d size %d: %v", req.NeedleId, req.Size, err)
}

View File

@@ -90,7 +90,7 @@ func (vs *VolumeServer) VolumeTailReceiver(ctx context.Context, req *volume_serv
defer glog.V(1).Infof("receive tailing volume %d finished", v.Id)
return resp, operation.TailVolumeFromSource(req.SourceVolumeServer, vs.grpcDialOption, v.Id, req.SinceNs, int(req.IdleTimeoutSeconds), func(n *needle.Needle) error {
_, err := vs.store.WriteVolumeNeedle(v.Id, n, false)
_, err := vs.store.WriteVolumeNeedle(v.Id, n, false, false)
return err
})