Hi,

>
>  Will it be possible for this patch to be backported to libmemcached 0.26
>> which is what I am using?
>>
>
> I don't backport for any particular version normally. Any particular reason
> you can't use .28 if I release it today?
>

No specific reason other than that we have done bulk of the testing of our
code with 0.26 version...

Regards,
Nikhils



>
> Cheers,
>        -Brian
>
>
>
>>
>> Regards,
>> Nikhils
>>
>> On Tue, Apr 14, 2009 at 7:49 PM, Brian Aker <[email protected]> wrote:
>>
>> Hi!
>>
>> I've applied this patch. It should be pushed within the hour.
>>
>> Thanks,
>>       -Brian
>>
>>
>> On Apr 14, 2009, at 3:50 AM, Nikhils wrote:
>>
>> Hi Brian,
>>
>> A careful perusal of the memcached_mget_by_key() function revealed the
>> bug.
>>
>> The code was generating the serverid by using the master key first.
>> However if the serverid was 0, the following check was causing re-evaluation
>> of the serverid by using the buffer key leading to the query being sent to
>> another server:
>>
>>   if (master_server_key) /* if the serverid had evaluated to zero, we go
>> to else */
>>     server_key= master_server_key;
>>   else
>>     server_key= memcached_generate_hash(ptr, keys[x], key_length[x]);
>>
>> After fixing this, the *_by_key logic appears to be working just fine.
>>
>> Please find attached, a patch (diff -c format) which fixes this.
>>
>> Regards,
>> Nikhils
>>
>> On Tue, Apr 14, 2009 at 12:27 PM, Nikhils <[email protected]> wrote:
>> Hi,
>>
>> I recently shifted to using the memcached_get/set_by_key APIs. The trouble
>> is that even after warming the cache with all of the content, a subsequent
>> query to fetch the key/value pair fails with a not found error. I am seeing
>> this behaviour in a 2-node memcached cluster.
>>
>> Its occurring consistently and on reverting back to using the normal
>> memcached_get/set APIs, the key/value pairs can be retrieved appropriately!
>> However I do need to use these by_key APIs for my data consistency logic.
>>
>> I have added appropriate logging information in my C code (am linking to
>> libmemcached 0.27) and confirmed that the master key is the same in both
>> set_by_key/get_by_key calls.
>>
>> Anything obvious that I am missing? Has anyone observed such dubious
>> behaviour before with these by_key calls? Comments appreciated.
>>
>> Regards,
>> Nikhils
>>
>> <libmemcached_mget_by_key_bug.patch>
>>
>> --
>> _______________________________________________________
>> Brian "Krow" Aker, brian at tangent.org
>> Seattle, Washington
>> http://krow.net/                     <-- Me
>> http://tangent.org/                <-- Software
>> _______________________________________________________
>> You can't grep a dead tree.
>>
>>
>>
>>
>>
> --
> _______________________________________________________
> Brian "Krow" Aker, brian at tangent.org
> Seattle, Washington
> http://krow.net/                     <-- Me
> http://tangent.org/                <-- Software
> _______________________________________________________
> You can't grep a dead tree.
>
>
>
>

Reply via email to