There's a big difference in the base classes of _MemcacheClient that are resolved at run-time when comparing Junien's testcase in comment #1 vs the code being executed via nova-api-os-compute in the failure case. Also showing arguments here for the failing case since I have them handy:
There's a big difference in the base classes of _MemcacheClient that are resolved at run-time when comparing Junien's testcase in comment #1 vs the code being executed via nova-api-os-compute in the failure case. Also showing arguments here for the failing case since I have them handy:
Successful testcase: ------- ------ getmro( _MemcacheClient )=(<class 'oslo_cache. _memcache_ pool._MemcacheC lient'> , <class 'memcache.Client'>, <class '_thread._local'>, <class 'object'>) _memcache_ pool._MemcacheC lient object at 0x7f984ddd04c8>
-------
CCB inspect.
<oslo_cache.
Failure via nova-api- os-compute: ------- ------- ------- ---- ={'dead_ retry': 300, 'socket_timeout': 3.0} ['10.5. 0.117:11211' ] getmro( _MemcacheClient )=(<class 'oslo_cache. _memcache_ pool._MemcacheC lient'> , <class 'memcache.Client'>, <class 'eventlet. corolocal. local'> , <class 'eventlet. corolocal. _localbase' >, <class 'object'>)
-------
self._arguments
self.urls=
inspect.