diff --git a/go/storage/needle.go b/go/storage/needle.go index d775c55fb..6636c342c 100644 --- a/go/storage/needle.go +++ b/go/storage/needle.go @@ -16,7 +16,6 @@ import ( "github.com/chrislusf/seaweedfs/go/glog" "github.com/chrislusf/seaweedfs/go/images" "github.com/chrislusf/seaweedfs/go/operation" - "github.com/chrislusf/seaweedfs/go/util" ) const ( diff --git a/go/storage/needle_read_write.go b/go/storage/needle_read_write.go index d9b5c5099..751c6d797 100644 --- a/go/storage/needle_read_write.go +++ b/go/storage/needle_read_write.go @@ -238,7 +238,8 @@ func (n *Needle) ReadNeedleBody(r *os.File, version Version, offset int64, bodyL } n.Data = bytes[:n.Size] n.Checksum = NewCRC(n.Data) - checksum := util.BytesToUint32(bytes[n.Size : n.Size+NeedleChecksumSize]) + checksum := binary.BigEndian.Uint32(bytes[n.Size : n.Size+NeedleChecksumSize]) + if n.Checksum.Value() != checksum { glog.V(0).Infof("CRC error! Data On Disk Corrupted, needle id = %x", n.Id) } @@ -252,7 +253,7 @@ func (n *Needle) ReadNeedleBody(r *os.File, version Version, offset int64, bodyL return } n.Checksum = NewCRC(n.Data) - checksum := util.BytesToUint32(bytes[n.Size : n.Size+NeedleChecksumSize]) + checksum := binary.BigEndian.Uint32(bytes[n.Size : n.Size+NeedleChecksumSize]) if n.Checksum.Value() != checksum { glog.V(0).Infof("CRC error! Data On Disk Corrupted, needle id = %x", n.Id) } diff --git a/go/storage/volume_replicate.go b/go/storage/volume_replicate.go index 00b9cd14e..e85bdc417 100644 --- a/go/storage/volume_replicate.go +++ b/go/storage/volume_replicate.go @@ -6,7 +6,7 @@ import ( "sort" "sync" - "github.com/chrislusf/seaweedfs/go/util" + "encoding/binary" ) type DirtyData struct { @@ -39,9 +39,9 @@ func ScanDirtyData(indexFileContent []byte) (dirtys DirtyDatas) { m := NewCompactMap() for i := 0; i+16 <= len(indexFileContent); i += 16 { bytes := indexFileContent[i : i+16] - key := util.BytesToUint64(bytes[:8]) - offset := util.BytesToUint32(bytes[8:12]) - size := util.BytesToUint32(bytes[12:16]) + key := binary.BigEndian.Uint64(bytes[:8]) + offset := binary.BigEndian.Uint32(bytes[8:12]) + size := binary.BigEndian.Uint32(bytes[12:16]) k := Key(key) if offset != 0 && size != 0 { m.Set(k, offset, size)