The script is:
```python
from tooz import coordination
from tooz import _retry
from tooz.drivers import memcached as mem1
from oslo_utils import timeutils
import uuid
import time
import tenacity
from tenacity import *
import logging
import threading
import functools
import pdb
The script is:
```python
from tooz import coordination
from tooz import _retry
from tooz.drivers import memcached as mem1
from oslo_utils import timeutils
import uuid
import time
import tenacity
from tenacity import *
import logging
import threading
import functools
import pdb
LOG = logging. getLogger( __name_ _)
pdb.set_trace()
LOCK_TIMEOUT = 30 //100.101. 89.222: 11211" uuid4() )).encode( 'ascii' ) get_coordinator ( LOCK_TIMEOUT start(start_ heart=True)
url = "memcached:
member_id = ("cinder-" + str(uuid.
coordinator = coordination.
url, member_id, lock_timeout=
)
coordinator.
lock_name = "uuid-delete_ snasphot" .encode( "ascii" )
# to get a lock get_lock( lock_name)
lock = coordinator.
@_retry. retry(stop_ max_delay= True) translate_ failures client. add(
lock. name,
lock. coord._ member_ id,
expire= LOCK_TIMEOUT,
noreply= False):
@mem1._
def _acquire():
print("trying add lock %s", lock.name)
if lock.coord.
print("add lock success")
return True
raise _retry.TryAgain
# to acquire lock
_acquire()
lock.coord. client. delete( lock.name)
lock.release()
coordinator.stop()
```
when lock was got and was about to acquire lock, i shutdown the memcache server '100.101. 89.222: 11211', It never tried acquire again.
the result is: tes-memcache. py(24)< module> () get_coordinator ( tes-memcache. py(25)< module> () LOCK_TIMEOUT tes-memcache. py(27)< module> () start(start_ heart=True) tes-memcache. py(29)< module> () snasphot" .encode( "ascii" ) LOCK_uuid- delete_ snasphot' lz/my_project_ env/lib/ python3. 6/site- packages/ tooz/drivers/ memcached. py", line 43, in _failure_translator lz/my_project_ env/lib/ python3. 6/site- packages/ tooz/drivers/ memcached. py", line 70, in wrapper lz/my_project_ env/lib/ python3. 6/site- packages/ pymemcache/ client/ base.py" , line 1169, in add lz/my_project_ env/lib/ python3. 6/site- packages/ pymemcache/ client/ base.py" , line 393, in add flags)[ key] lz/my_project_ env/lib/ python3. 6/site- packages/ pymemcache/ client/ base.py" , line 942, in _store_cmd self.sock, buf) lz/my_project_ env/lib/ python3. 6/site- packages/ pymemcache/ client/ base.py" , line 1266, in _readline tedCloseError( ) exceptions. MemcacheUnexpec tedCloseError
```bash
(Pdb)
> /home/lz/
-> coordinator = coordination.
(Pdb)
> /home/lz/
-> url, member_id, lock_timeout=
(Pdb)
> /home/lz/
-> coordinator.
(Pdb)
> /home/lz/
-> lock_name = "uuid-delete_
(Pdb) c
trying add lock %s b'__TOOZ_
Traceback (most recent call last):
File "/home/
yield
File "/home/
return func(*args, **kwargs)
File "tes-memcache.py", line 47, in _acquire
noreply=False):
File "/home/
flags=flags)
File "/home/
flags=
File "/home/
buf, line = _readline(
File "/home/
raise MemcacheUnexpec
pymemcache.
```
Is retry strategy "retry_ if_exception_ type" more proper here other than "retry_never"?