diff --git a/memcache.py b/memcache.py index 3e6bd67..673db39 100644 --- a/memcache.py +++ b/memcache.py @@ -898,6 +898,7 @@ def set_multi(self, mapping, time=0, key_prefix='', min_compress_len=0, # send out all requests on each server before reading anything dead_servers = [] notstored = [] # original keys. + has_valid_content = False for server in six.iterkeys(server_keys): bigcmd = [] @@ -914,6 +915,7 @@ def set_multi(self, mapping, time=0, key_prefix='', min_compress_len=0, noreply, b'\r\n', val, b'\r\n') write(fullcmd) + has_valid_content = True else: notstored.append(prefixed_to_orig_key[key]) server.send_cmds(b''.join(bigcmd)) @@ -927,6 +929,9 @@ def set_multi(self, mapping, time=0, key_prefix='', min_compress_len=0, if noreply: return notstored + if not has_valid_content: + return mapping.keys() + # if any servers died on the way, don't expect them to respond. for server in dead_servers: del server_keys[server]