Hide Forgot
memcached can be configured to listen either on normal INET sockets or a UNIX domain socket. If the server is configured on a UNIX domain socket and you call get_stats() to retrieve the server statistics then memcache.py will throw an exception: _Host instance has no attribute 'ip' This occurs because get_stats() assumes the net family is INET and as such has an ip address, it doesn't because it's UNIX domain socket. Attached is a trivial patch to correct the problem, it's taken from a later upstream version. To reproduce the problem you have to run a memcached instance listing on a UNIX socket, the standard initscript does not support this, instead you should do this: /usr/bin/memcached -d -s $SOCKET_PATH then you'll need a python program: import memcache servers = ['unix:%s' % socket_path] mc = memcache.Client(servers, debug=0) print mc.get_stats()
Created attachment 560993 [details] detect server family in get_stats()
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: python-memcached can't get statistics of memcached server on UNIX socket Consequence: method get_stats() throws an exception Fix: Alter the get_stats() method Result: get_stats() method works as expected
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0889.html