Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.6.5.3
-
Fix Version/s: 1.7.1
-
Component/s: couchbase-bucket
-
Security Level: Public
-
Labels:None
Description
this can cause a huge memory spike
example
while True:
mc.set(key,1,0,..)
we do not overwrite the value in kv table because expiration is less than 3 so for every set we end up creating a new value in the kv table
this is not a real use case but is seen very often while testing ( e.g a script sent by one of the customers was causing this issue)
for example if you have a working set of 4000 keys ( data 400 mb) and you loop 400 times and invoke a mc.set(key,2,..) after 10 minutes you will end up with 4x400Mb
example
while True:
mc.set(key,1,0,..)
we do not overwrite the value in kv table because expiration is less than 3 so for every set we end up creating a new value in the kv table
this is not a real use case but is seen very often while testing ( e.g a script sent by one of the customers was causing this issue)
for example if you have a working set of 4000 keys ( data 400 mb) and you loop 400 times and invoke a mc.set(key,2,..) after 10 minutes you will end up with 4x400Mb
Activity
Farshid Ghods
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Description |
this can cause a huge memory spike
example while True: mc.set(key,1,0,..) we do not overwrite the value in kv table because expiration is less than 3 so for every set we end up creating a new value in the kv table this is not a real use case but is seen very often while testing ( e.g a script sent by one of the customers was causing this issue) for example if you have a working set of 4000 keys ( data 400 mb) and you loop 400 times and invoke a mc.set(key,2,..) after 5-10 minutes you will end up with 3x400Mb |
this can cause a huge memory spike
example while True: mc.set(key,1,0,..) we do not overwrite the value in kv table because expiration is less than 3 so for every set we end up creating a new value in the kv table this is not a real use case but is seen very often while testing ( e.g a script sent by one of the customers was causing this issue) for example if you have a working set of 4000 keys ( data 400 mb) and you loop 400 times and invoke a mc.set(key,2,..) after 10 minutes you will end up with 4x400Mb |
Farshid Ghods
made changes -
| Assignee | Chiyoung Seo [ chiyoung ] |
Farshid Ghods
made changes -
| Summary | memcached creates a new row in kv table if it receives a mutation for an item which is already going to expire in 3 seconds | setting a new value for an expired item before the pager cleans up the value from memory causes memory leak |
Chiyoung Seo
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
Chiyoung Seo
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |
Farshid Ghods
made changes -
| Component/s | couchbase-bucket [ 10173 ] | |
| Component/s | ep_engine [ 10013 ] |