Thanks Jeff, that is very helpful. We are considering a course of action and before doing any work toward this, I'd like to understand the pitfalls from people that understand Apache better than us.
On Wed, Oct 17, 2012 at 3:36 PM, Joshua Marantz <firstname.lastname@example.org> wrote:No, the socket connect timeout is hard-coded at 1 second and the
> Is there a mechanism to time out individual operations?
socket I/O timeout is disabled.
Bugzilla bug https://issues.apache.org/bugzilla/show_bug.cgi?id=51065
has a patch, though it is apparently missing a call to adjust the
socket timeout and to discard the connection if the timeout is
reached. More importantly, the API can only be changed in future APR
2.0; alternate, backwards-compatible API(s) could be added in future
> If memcached freezes, then it appears my calls to 'get' will block until
> memcached wakes up. Is there any way to set a timeout for that call?
> I can repro this in my unit tests by sending a SIGSTOP to memcached before
> doing a 'get'?
> Here are my observations:
> apr_memcache_multgetp seems to time out in bounded time if I SIGSTOP the
> memcached process. Yes!
> apr_memcache_getp seems to hang indefinitely if I SIGSTOP the memcached
> apr_memcache_set seems to hang indefinitely if I SIGSTOP the memcached
> apr_memcache_delete seems to hang indefinitely if I SIGSTOP the memcached
> apr_memcache_stats seems to hang indefinitely if I SIGSTOP the memcached
> That last one really sucks as I am using that to print the status of all my
> cache shards to the log file if I detected a problem :(
> Why does apr_memcache_multgetp do what I want and not the others? Can I
> induce the others to have reasonable timeout behavior?
> When I SIGSTOP memcached this makes it hard to even restart Apache, at
> least with graceful-stop.
> On a related note, the apr_memcache
> very thin. I'd be happy to augment it with my observations on itsCheck out APR trunk from Subversion, adjust the doxygen docs in the
> and the meaning of some of the arguments if that was desired. How would I
> go about that?
include files, build (make dox) and inspect the results, submit a
patch to email@example.com.
Born in Roswell... married an alien...