1.2.4 problems with high concurrency, getting off by a request
inspire22 at gmail.com
Sun Jan 27 22:56:46 UTC 2008
I haven't yet generated a test case that can duplicate this, but
thought I'd announce my initial findings in case anyone else has been
having problems with this, or have ideas about what exactly the
problem might be. Rolling back to 1.2.2 fixed the problem for me.
I run a fairly large site, 5 rails processes connect to memcache and
set/get a lot of cached data. Some of it is compressed, and some of
it is up to 40k. Eric Hodel's memcache_client (which I ended up
hacking to add more error checking and debug printing).
I've experienced problems with it getting out of sync, for example
1) When I would be expecting an "END\r\n", it would send value data
from another request made awhile ago (or possibly by another process).
2) When I would request key "ns:bans" it would reply "value
another_key". It would stay "behind" by a key for the entire
request, always returning the key requested 2x ago, not the most
3) The whole thing would hang because socket.gets or socket.puts
I ended up adding a lot of error-checking to make sure the key the
value being returned for was correct, then closing the connection if
it was not. As well as returning when missing END, etc.
Unfortunately, rafb.net removed my pastes of errors because I
procrastinated too long before sending this report. Hopefully the
symptoms above are enough to help someone who perhaps knows the
internals to track down what the problem might be.
As I said, rolling back to 1.2.2 fixed the problem. Thanks for an
overall great project! :)
"After all, what is your hosts' purpose in having a party? Surely not
for you to enjoy yourself; if that were their sole purpose, they'd
have simply sent champagne and women over to your place by taxi." -
P. J. O'Rourke
More information about the memcached