On Wed, Oct 17, 2012 at 3:36 PM, Joshua Marantz <jmara...@google.com> wrote: > Is there a mechanism to time out individual operations?
No, the socket connect timeout is hard-coded at 1 second and the 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 APR-Util 1.6. > > 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 > process. > > apr_memcache_set seems to hang indefinitely if I SIGSTOP the memcached > process. > > apr_memcache_delete seems to hang indefinitely if I SIGSTOP the memcached > process. > > apr_memcache_stats seems to hang indefinitely if I SIGSTOP the memcached > process. > > 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 > documentation<http://apr.apache.org/docs/apr-util/1.4/group___a_p_r___util___m_c.html>is > very thin. I'd be happy to augment it with my observations on its > usage > and the meaning of some of the arguments if that was desired. How would I > go about that? Check out APR trunk from Subversion, adjust the doxygen docs in the include files, build (make dox) and inspect the results, submit a patch to dev@apr.apache.org. > > -Josh -- Born in Roswell... married an alien... http://emptyhammock.com/