After some investigation, I found out that the problem was due to a couple of libmemcached bugs, for which I have submitted patches.
There is still a question of how to handle out of sync problems. It may show up again, and recovering nicely, with minimal confusion, would be wonderful. On Fri, 2008-01-25 at 09:32 -0800, Kevin Dalley wrote: > I have looked at a series of memcached_set, memcached_get, > memcached_delete, memcached_flush. I'm getting strange return values, > followed by a client stuck in a poll. > > > Everything goes quite well for a while. Then the return codes get > strange, with memcached_set returning NOT_FOUND, memcached_get returning > stored. Other strange errors, and eventually the client is stuck in a > poll. > > I assume that the client and server disagree about their position. Once > they get lost, things get worse over time. > > This is on a FreeBSD4.11 box, with a 1.2.4 server, and a new version of > libmemcached, pulled down yesterday. A few weeks old version also shows > this problem. What should I do? Perhaps I should should repeat the > request. Perhaps I should shut down and reopen the connection. If it > doesn't happen often, I may try this. Perhaps I should try to > understand the problem more completely. > > Here are a few odd returns which I see. > > Then things get stranger. memcached_get returns MEMCACHED_STORED. In > fact, it returns quite a few of them. > > Eventually memcached_set returns a few MEMCACHED_SERVER_END, mingled in > with the MEMCACHED_STORED. > > memcached_set returns NOT_FOUND. > > memcached_get returns SERVER DELETE > > memcached_set returns SERVER_END > > memcached_set returns NOT_FOUND
