mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-10-15 08:16:52 +08:00
Issue 45 in weed-fs: [Compact issue] Offset overflow
New issue 45 by hieu.hcmus@gmail.com: [Compact issue] Offset overflow http://code.google.com/p/weed-fs/issues/detail?id=45 You are using uint32(Maximum 4Gb) to store needle offset(Maximum 32Gb) when compacting. Currently It is ok if the volume size is < 4gb Change variable "offset" in ScanVolumeFile function to uint64 to fix the issue.
This commit is contained in:
@@ -17,9 +17,9 @@ const (
|
||||
LastModifiedBytesLength = 5
|
||||
)
|
||||
|
||||
func (n *Needle) DiskSize() uint32 {
|
||||
padding := NeedlePaddingSize - ((NeedleHeaderSize + n.Size + NeedleChecksumSize) % NeedlePaddingSize)
|
||||
return NeedleHeaderSize + n.Size + padding + NeedleChecksumSize
|
||||
func (n *Needle) DiskSize() int64 {
|
||||
padding := NeedlePaddingSize - ((NeedleHeaderSize + int64(n.Size) + NeedleChecksumSize) % NeedlePaddingSize)
|
||||
return NeedleHeaderSize + int64(n.Size) + padding + NeedleChecksumSize
|
||||
}
|
||||
func (n *Needle) Append(w io.Writer, version Version) (size uint32, err error) {
|
||||
if s, ok := w.(io.Seeker); ok {
|
||||
|
Reference in New Issue
Block a user