Close
Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

PIVOTAL LABS
Standup 10/5/2009

Help

Has anybody seen memcache clients suddenly stop being able to talk to the memcached server and mark it as dead?

In fact many people have seen this. The Pivot with the question is using the memcached gem, while others noted that the memcache-client gem had special retry logic within it to deal with such a situation. In the latter case, some have still seen connections to memcache timeout despite the retry logic and despite the fact that memcache appears to be up and operational by all other checks.

That being said, nobody had any notion of what the root cause was – anybody out on the interwebs have insight on this?


Anybody seen random segmentation faults and bus errors happening in Ruby?

One of our projects is seeing intermittent crashing of the Ruby interpreter (MRI) while running the app. It seems to happen in a random place inside of Rails, but never the exact same place. We can’t find anything suspicious about the code where it is crashing.

It was noted that the project in question is using libxml (to support Nokogiri) and that various combinations of libxml and MRI are known to be incompatible; in fact a few previous Blabs posts exist on this subject. However, in this case the crashes do not happen deterministically, which is unlike the cases described previously.

Comments
  1. Brian Doll says:

    I’ve had similar issues using a recent memcache-client gem (1.7.4, 1.7.5) where timeout’s occur for unknown reasons. These versions use ruby’s timeout library which is known to be less than stellar. The author, Mike Pernham, had made attempts at using SO_SNDTIMEO and SO_RCVTIMEO socket options instead, but found that they were not supported everywhere (Solaris) and had other issues:
    http://www.mikeperham.com/2009/03/15/socket-timeouts-in-ruby/

    If for you, the real issue isn’t the occasional timeout, but the exception that’s being thrown when you get a timeout (MemCache::MemCacheError: IO timeout), be sure to set raise_errors to false in config/memcached.yml for non-development environments.

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *