aboutsummaryrefslogtreecommitdiff
path: root/go/storage/volume.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2016-05-13 00:19:57 -0700
committerChris Lu <chris.lu@gmail.com>2016-05-13 00:19:59 -0700
commitf8b03c45ef7e095542bc6c9a3d05412c04a9e211 (patch)
treed7e91b322792f2210227f79b9a8d98e92de3168d /go/storage/volume.go
parente639f1f889eb3705384a089d23c6bc4738ba9fa0 (diff)
downloadseaweedfs-f8b03c45ef7e095542bc6c9a3d05412c04a9e211.tar.xz
seaweedfs-f8b03c45ef7e095542bc6c9a3d05412c04a9e211.zip
properly release memory
fix https://github.com/chrislusf/seaweedfs/issues/301
Diffstat (limited to 'go/storage/volume.go')
-rw-r--r--go/storage/volume.go3
1 files changed, 1 insertions, 2 deletions
diff --git a/go/storage/volume.go b/go/storage/volume.go
index af552a10f..7e330a9e4 100644
--- a/go/storage/volume.go
+++ b/go/storage/volume.go
@@ -159,11 +159,11 @@ func (v *Volume) isFileUnchanged(n *Needle) bool {
if ok && nv.Offset > 0 {
oldNeedle := new(Needle)
err := oldNeedle.ReadData(v.dataFile, int64(nv.Offset)*NeedlePaddingSize, nv.Size, v.Version())
- defer oldNeedle.ReleaseMemory()
if err != nil {
glog.V(0).Infof("Failed to check updated file %v", err)
return false
}
+ defer oldNeedle.ReleaseMemory()
if oldNeedle.Checksum == n.Checksum && bytes.Equal(oldNeedle.Data, n.Data) {
n.DataSize = oldNeedle.DataSize
return true
@@ -289,7 +289,6 @@ func (v *Volume) readNeedle(n *Needle) (int, error) {
}
err := n.ReadData(v.dataFile, int64(nv.Offset)*NeedlePaddingSize, nv.Size, v.Version())
if err != nil {
- n.ReleaseMemory()
return 0, err
}
bytesRead := len(n.Data)