Affects Version/s: 1.7.1
Fix Version/s: None
Security Level: Public
Chiyoung found one case of memory leak with append/prepend in the 1.7.x ep-engine code. The scenario is...
If the client app is using CAS with their append/prepend operations, and they have concurrent clients trying to append to the same hot item, then several of the concurrent clients could be "rejected" in that their CAS values are out of date. The rejected CAS-mismatch clients would see a EEXISTS error code if they're binary protocol clients. These requests that have rejected CAS-mismatch will leak the item.
This should also be reproducible with a single client, where any append operations use a bogus CAS number.
|For Gerrit Dashboard: &For+MB-4195=message:MB-4195|
|8965,1||MB-4195 Free an item if prepend/append failed due to CAS mismatches||ep-engine||Status: MERGED||+2||+1|
|9734,1||Merge branch 'branch-172' into branch-20||ep-engine||Status: MERGED||+2||+1|
|Field||Original Value||New Value|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|
|Component/s||couchbase-bucket [ 10173 ]|
|Component/s||ep_engine [ 10013 ]|