mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #10335 from gyuho/release-3.3-patch
[Cherry pick 3.3] grpcproxy: fix memory leak
This commit is contained in:
commit
e6b2f00047
@ -6,7 +6,7 @@ sudo: required
|
||||
services: docker
|
||||
|
||||
go:
|
||||
- 1.10.4
|
||||
- 1.10.7
|
||||
|
||||
notifications:
|
||||
on_success: never
|
||||
@ -23,7 +23,7 @@ env:
|
||||
matrix:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- go: 1.10.4
|
||||
- go: 1.10.7
|
||||
env: TARGET=linux-386-unit
|
||||
exclude:
|
||||
- go: tip
|
||||
|
11
proxy/grpcproxy/cache/store.go
vendored
11
proxy/grpcproxy/cache/store.go
vendored
@ -99,9 +99,12 @@ func (c *cache) Add(req *pb.RangeRequest, resp *pb.RangeResponse) {
|
||||
iv = c.cachedRanges.Find(ivl)
|
||||
|
||||
if iv == nil {
|
||||
c.cachedRanges.Insert(ivl, []string{key})
|
||||
val := map[string]struct{}{key: {}}
|
||||
c.cachedRanges.Insert(ivl, val)
|
||||
} else {
|
||||
iv.Val = append(iv.Val.([]string), key)
|
||||
val := iv.Val.(map[string]struct{})
|
||||
val[key] = struct{}{}
|
||||
iv.Val = val
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,8 +144,8 @@ func (c *cache) Invalidate(key, endkey []byte) {
|
||||
|
||||
ivs = c.cachedRanges.Stab(ivl)
|
||||
for _, iv := range ivs {
|
||||
keys := iv.Val.([]string)
|
||||
for _, key := range keys {
|
||||
keys := iv.Val.(map[string]struct{})
|
||||
for key := range keys {
|
||||
c.lru.Remove(key)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user