This recreates with Junien's testcase + eventlet.monkey_patch():
ubuntu@juju-b1ca57-coreycb2-19:~$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import eventlet
>>> eventlet.monkey_patch()
>>> from oslo_cache import _memcache_pool
>>> a=_memcache_pool.MemcacheClientPool(urls="foo", arguments={}, maxsize=10, unused_timeout=10)
>>> a._create_connection()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/oslo_cache/_memcache_pool.py", line 214, in _create_connection
return _MemcacheClient(self.urls, **self._arguments)
TypeError: object() takes no parameters
And the base classes correspond to the nova-api-os-compute failure case:
inspect.getmro(_MemcacheClient)=(<class 'oslo_cache._memcache_pool._MemcacheClient'>, <class 'memcache.Client'>, <class 'eventlet.corolocal.local'>, <class 'eventlet.corolocal._localbase'>, <class 'object'>)
This recreates with Junien's testcase + eventlet. monkey_ patch() :
ubuntu@ juju-b1ca57- coreycb2- 19:~$ python3 monkey_ patch() pool.MemcacheCl ientPool( urls="foo" , arguments={}, maxsize=10, unused_timeout=10) connection( ) python3/ dist-packages/ oslo_cache/ _memcache_ pool.py" , line 214, in _create_connection (self.urls, **self._arguments)
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import eventlet
>>> eventlet.
>>> from oslo_cache import _memcache_pool
>>> a=_memcache_
>>> a._create_
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/
return _MemcacheClient
TypeError: object() takes no parameters
And the base classes correspond to the nova-api-os-compute failure case: getmro( _MemcacheClient )=(<class 'oslo_cache. _memcache_ pool._MemcacheC lient'> , <class 'memcache.Client'>, <class 'eventlet. corolocal. local'> , <class 'eventlet. corolocal. _localbase' >, <class 'object'>)
inspect.