Merge lp://staging/~trond-norbye/libmemcached/bug_394442 into lp://staging/~tangent-org/libmemcached/trunk
Proposed by
Trond Norbye
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp://staging/~trond-norbye/libmemcached/bug_394442 |
Merge into: | lp://staging/~tangent-org/libmemcached/trunk |
Diff against target: | None lines |
To merge this branch: | bzr merge lp://staging/~trond-norbye/libmemcached/bug_394442 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Libmemcached-developers | Pending | ||
Review via email:
|
To post a comment you must log in.
Bug 394442: Replication mget test fail on linux due to race conditions
All replicas are stored on the different servers by using the quiet commands,
and when we start to receive them we will do that in another memcached_st
instance (aka another connection to the server). The code goes directly
from the SET command to trying to fetch the items from all of the servers.
This means that the memcached server may still be processing the quiet set
commands while another thread in the memcached server tries to fetch all of
the items.
To fix this we need to ensure that all of the set commands are executed on
all of the memcached servers before starting to receive them. memcached_quit
will send the QUIT command to all of the servers and wait for a response,
so we now that when memcached_quit returns all commands are executed on
the client.
In addition the response counter should not be updated when we send out the
replica storage / delete commands.