multiGet with different opaque values in binary mode fails to return cached values (xmemcache)
Opened this issue · 0 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. Start a daemon in binary mode
2. Using xmemcached, do a get() on two values, then set these two values
3. Fetch these two values, using another get().
What is the expected output? What do you see instead?
* I expect to see both values in the cache
* Instead, I only get one value
What version of the product are you using? On what operating system?
* xmemcache 1.4.2
* jmemcache-daemon 1.0.0 (also tested with 1.0.1-SNAPSHOT)
Please provide any additional information below.
This bug happens due to the way cork() and uncork() is used in
MemcachedBinaryResponseEncoder. The cork() call is made with the opaque value,
but when the final response is made, we only look at the opaque value from the
current command to uncork any responses, leaving the responses with a different
opaque value behind in corkedBuffers.
Attach please find a testcase.jar which includes a full maven project to verify
that the bug exists, as well as a proposed patch.
Original issue reported on code.google.com by rku...@okta.com
on 26 Sep 2013 at 6:26
Attachments: