diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | memcache.py | 6 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,7 @@ + * Bug #713451: server.expect("END") needs to be in a finally block + Expect an "END" when the _recv_value() raises an exception. + Patch by Jay Farrimond. + * Bug: #741090: cas cache can grow unbounded. Default now is that the cache is not used, unless the "Client()" object is created with "cache_cas=True". In that case, you need to have your own cas clearing diff --git a/memcache.py b/memcache.py index e007c57..9a50407 100644 --- a/memcache.py +++ b/memcache.py @@ -826,8 +826,10 @@ class Client(local): if not rkey: return None - value = self._recv_value(server, flags, rlen) - server.expect("END") + try: + value = self._recv_value(server, flags, rlen) + finally: + server.expect("END") except (_Error, socket.error), msg: if isinstance(msg, tuple): msg = msg[1] server.mark_dead(msg) |