krka/jmemcache-daemon

multiGet with different opaque values in binary mode fails to return cached values (xmemcache)

Opened this issue · 0 comments

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: