aboutsummaryrefslogtreecommitdiff
path: root/go/weed
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/weed
parente639f1f889eb3705384a089d23c6bc4738ba9fa0 (diff)
downloadseaweedfs-f8b03c45ef7e095542bc6c9a3d05412c04a9e211.tar.xz
seaweedfs-f8b03c45ef7e095542bc6c9a3d05412c04a9e211.zip
properly release memory
fix https://github.com/chrislusf/seaweedfs/issues/301
Diffstat (limited to 'go/weed')
-rw-r--r--go/weed/weed_server/volume_server_handlers_read.go2
-rw-r--r--go/weed/weed_server/volume_server_handlers_write.go3
2 files changed, 2 insertions, 3 deletions
diff --git a/go/weed/weed_server/volume_server_handlers_read.go b/go/weed/weed_server/volume_server_handlers_read.go
index 5f3199738..3eb33a8c9 100644
--- a/go/weed/weed_server/volume_server_handlers_read.go
+++ b/go/weed/weed_server/volume_server_handlers_read.go
@@ -66,12 +66,12 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
cookie := n.Cookie
count, e := vs.store.ReadVolumeNeedle(volumeId, n)
glog.V(4).Infoln("read bytes", count, "error", e)
- defer n.ReleaseMemory()
if e != nil || count <= 0 {
glog.V(0).Infoln("read error:", e, r.URL.Path)
w.WriteHeader(http.StatusNotFound)
return
}
+ defer n.ReleaseMemory()
if n.Cookie != cookie {
glog.V(0).Infoln("request", r.URL.Path, "with unmaching cookie seen:", cookie, "expected:", n.Cookie, "from", r.RemoteAddr, "agent", r.UserAgent())
w.WriteHeader(http.StatusNotFound)
diff --git a/go/weed/weed_server/volume_server_handlers_write.go b/go/weed/weed_server/volume_server_handlers_write.go
index 421802160..b0a4c7031 100644
--- a/go/weed/weed_server/volume_server_handlers_write.go
+++ b/go/weed/weed_server/volume_server_handlers_write.go
@@ -56,13 +56,13 @@ func (vs *VolumeServer) DeleteHandler(w http.ResponseWriter, r *http.Request) {
cookie := n.Cookie
_, ok := vs.store.ReadVolumeNeedle(volumeId, n)
- defer n.ReleaseMemory()
if ok != nil {
m := make(map[string]uint32)
m["size"] = 0
writeJsonQuiet(w, r, http.StatusNotFound, m)
return
}
+ defer n.ReleaseMemory()
if n.Cookie != cookie {
glog.V(0).Infoln("delete", r.URL.Path, "with unmaching cookie from ", r.RemoteAddr, "agent", r.UserAgent())
@@ -122,7 +122,6 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques
Status: http.StatusNotFound,
Error: err.Error(),
})
- n.ReleaseMemory()
continue
}