*** This bug is a duplicate of bug 1440493 ***
    https://bugs.launchpad.net/bugs/1440493

Public bug reported:

keystone.conf:

    [cache]
    backend=keystone.cache.memcache_pool
    memcache_servers=db0.stack:11211

with this settings, keystone makes below error when request token

2015-08-13 00:11:44.489 689 DEBUG keystone.common.cache._memcache_pool [-] 
Memcached pool 139851635173456, thread 139851778242368: Acquiring connection 
_debug_logger 
/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py:91
2015-08-13 00:11:44.490 689 ERROR keystone.common.wsgi [-] super(type, obj): 
obj must be an instance or subtype of type
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi Traceback (most recent 
call last):
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/wsgi.py", line 223, in __call__
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     result = 
method(context, **params)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 100, in 
authenticate
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     context, auth)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 301, in 
_authenticate_local
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_id = 
self._get_project_id_from_auth(auth)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 371, in 
_get_project_id_from_auth
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_name, 
CONF.identity.default_domain_id)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 
1040, in decorate
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     should_cache_fn)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 651, 
in get_or_create
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     async_creator) as 
value:
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, 
in __enter__
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return self._enter()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 91, 
in _enter
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = value_fn()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 604, 
in get_value
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.backend.get(key)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/backends/memcached.py",
 line 149, in get
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.client.get(key)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/backends/memcache_pool.py", 
line 35, in _run_method
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     with 
self.client_pool.acquire() as client:
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/pyenv/versions/2.7.9/lib/python2.7/contextlib.py", line 17, in __enter__
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self.gen.next()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 97, 
in acquire
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self.get(timeout=self._connection_get_timeout)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/eventlet/eventlet/queue.py", line 287, in get
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return self._get()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
155, in _get
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
ConnectionPool._get(self)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
120, in _get
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self._create_connection()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
149, in _create_connection
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
_MemcacheClient(self.urls, **self._arguments)
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/memcache.py", line 228, in __init__
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     super(Client, 
self).__init__()
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi TypeError: super(type, 
obj): obj must be an instance or subtype of type
2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi

when I change with

--- a/keystone/common/cache/_memcache_pool.py
+++ b/keystone/common/cache/_memcache_pool.py
-_MemcacheClient = type('_MemcacheClient', (object,),
+memcache.Client = type('memcache.Client', (object,),
                        dict(memcache.Client.__dict__))

 _PoolItem = collections.namedtuple('_PoolItem', ['ttl', 'connection'])
@@ -146,7 +146,7 @@ class MemcacheClientPool(ConnectionPool):
         self._hosts_deaduntil = [0] * len(urls)

     def _create_connection(self):
-        return _MemcacheClient(self.urls, **self._arguments)
+        return memcache.Client(self.urls, **self._arguments)

     def _destroy_connection(self, conn):
         conn.disconnect_all()

It works well

** Affects: keystone
     Importance: Undecided
         Status: Invalid

** Description changed:

  keystone.conf:
  
-     [cache]
-     backend=keystone.cache.memcache_pool
-     memcache_servers=db0.stack:11211
+     [cache]
+     backend=keystone.cache.memcache_pool
+     memcache_servers=db0.stack:11211
  
  with this settings, keystone makes below error when request token
  
  2015-08-13 00:11:44.489 689 DEBUG keystone.common.cache._memcache_pool [-] 
Memcached pool 139851635173456, thread 139851778242368: Acquiring connection 
_debug_logger 
/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py:91
  2015-08-13 00:11:44.490 689 ERROR keystone.common.wsgi [-] super(type, obj): 
obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi Traceback (most recent 
call last):
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/wsgi.py", line 223, in __call__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     result = 
method(context, **params)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 100, in 
authenticate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     context, auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 301, in 
_authenticate_local
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_id = 
self._get_project_id_from_auth(auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 371, in 
_get_project_id_from_auth
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_name, 
CONF.identity.default_domain_id)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 
1040, in decorate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     should_cache_fn)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 651, 
in get_or_create
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     async_creator) as 
value:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, 
in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self._enter()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 91, 
in _enter
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = value_fn()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 604, 
in get_value
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.backend.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/backends/memcached.py",
 line 149, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.client.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/backends/memcache_pool.py", 
line 35, in _run_method
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     with 
self.client_pool.acquire() as client:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/pyenv/versions/2.7.9/lib/python2.7/contextlib.py", line 17, in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self.gen.next()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 97, 
in acquire
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self.get(timeout=self._connection_get_timeout)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/eventlet/eventlet/queue.py", line 287, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return self._get()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
155, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
ConnectionPool._get(self)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
120, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self._create_connection()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
149, in _create_connection
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
_MemcacheClient(self.urls, **self._arguments)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/memcache.py", line 228, in __init__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     super(Client, 
self).__init__()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi TypeError: super(type, 
obj): obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi
  
- 
- when I chane with
+ when I change with
  
  -_MemcacheClient = type('_MemcacheClient', (object,),
  +memcache.Client = type('memcache.Client', (object,),
-                         dict(memcache.Client.__dict__))
+                         dict(memcache.Client.__dict__))
  
-  _PoolItem = collections.namedtuple('_PoolItem', ['ttl', 'connection'])
+  _PoolItem = collections.namedtuple('_PoolItem', ['ttl', 'connection'])
  @@ -146,7 +146,7 @@ class MemcacheClientPool(ConnectionPool):
-          self._hosts_deaduntil = [0] * len(urls)
+          self._hosts_deaduntil = [0] * len(urls)
  
-      def _create_connection(self):
+      def _create_connection(self):
  -        return _MemcacheClient(self.urls, **self._arguments)
  +        return memcache.Client(self.urls, **self._arguments)
  
-      def _destroy_connection(self, conn):
-          conn.disconnect_all()
- 
+      def _destroy_connection(self, conn):
+          conn.disconnect_all()
  
  It works well

** Description changed:

  keystone.conf:
  
      [cache]
      backend=keystone.cache.memcache_pool
      memcache_servers=db0.stack:11211
  
  with this settings, keystone makes below error when request token
  
  2015-08-13 00:11:44.489 689 DEBUG keystone.common.cache._memcache_pool [-] 
Memcached pool 139851635173456, thread 139851778242368: Acquiring connection 
_debug_logger 
/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py:91
  2015-08-13 00:11:44.490 689 ERROR keystone.common.wsgi [-] super(type, obj): 
obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi Traceback (most recent 
call last):
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/wsgi.py", line 223, in __call__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     result = 
method(context, **params)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 100, in 
authenticate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     context, auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 301, in 
_authenticate_local
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_id = 
self._get_project_id_from_auth(auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 371, in 
_get_project_id_from_auth
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_name, 
CONF.identity.default_domain_id)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 
1040, in decorate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     should_cache_fn)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 651, 
in get_or_create
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     async_creator) as 
value:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, 
in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self._enter()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 91, 
in _enter
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = value_fn()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 604, 
in get_value
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.backend.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/backends/memcached.py",
 line 149, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.client.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/backends/memcache_pool.py", 
line 35, in _run_method
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     with 
self.client_pool.acquire() as client:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/pyenv/versions/2.7.9/lib/python2.7/contextlib.py", line 17, in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self.gen.next()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 97, 
in acquire
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self.get(timeout=self._connection_get_timeout)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/eventlet/eventlet/queue.py", line 287, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return self._get()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
155, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
ConnectionPool._get(self)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
120, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self._create_connection()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
149, in _create_connection
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
_MemcacheClient(self.urls, **self._arguments)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/memcache.py", line 228, in __init__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     super(Client, 
self).__init__()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi TypeError: super(type, 
obj): obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi
  
  when I change with
  
+ --- a/keystone/common/cache/_memcache_pool.py
+ +++ b/keystone/common/cache/_memcache_pool.py
  -_MemcacheClient = type('_MemcacheClient', (object,),
  +memcache.Client = type('memcache.Client', (object,),
                          dict(memcache.Client.__dict__))
  
   _PoolItem = collections.namedtuple('_PoolItem', ['ttl', 'connection'])
  @@ -146,7 +146,7 @@ class MemcacheClientPool(ConnectionPool):
           self._hosts_deaduntil = [0] * len(urls)
  
       def _create_connection(self):
  -        return _MemcacheClient(self.urls, **self._arguments)
  +        return memcache.Client(self.urls, **self._arguments)
  
       def _destroy_connection(self, conn):
           conn.disconnect_all()
  
  It works well

** Changed in: keystone
       Status: New => Invalid

** This bug has been marked a duplicate of bug 1440493
   Crash with python-memcached==1.5.4

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1484163

Title:
  cache.backend = keystone.cache.memcache_pool cause error

Status in Keystone:
  Invalid

Bug description:
  keystone.conf:

      [cache]
      backend=keystone.cache.memcache_pool
      memcache_servers=db0.stack:11211

  with this settings, keystone makes below error when request token

  2015-08-13 00:11:44.489 689 DEBUG keystone.common.cache._memcache_pool [-] 
Memcached pool 139851635173456, thread 139851778242368: Acquiring connection 
_debug_logger 
/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py:91
  2015-08-13 00:11:44.490 689 ERROR keystone.common.wsgi [-] super(type, obj): 
obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi Traceback (most recent 
call last):
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/wsgi.py", line 223, in __call__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     result = 
method(context, **params)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 100, in 
authenticate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     context, auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 301, in 
_authenticate_local
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_id = 
self._get_project_id_from_auth(auth)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/token/controllers.py", line 371, in 
_get_project_id_from_auth
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     tenant_name, 
CONF.identity.default_domain_id)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 
1040, in decorate
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     should_cache_fn)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 651, 
in get_or_create
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     async_creator) as 
value:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 158, 
in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self._enter()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/core/dogpile.py", line 91, 
in _enter
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = value_fn()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/region.py", line 604, 
in get_value
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.backend.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/dogpile/cache/backends/memcached.py",
 line 149, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     value = 
self.client.get(key)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/backends/memcache_pool.py", 
line 35, in _run_method
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     with 
self.client_pool.acquire() as client:
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/pyenv/versions/2.7.9/lib/python2.7/contextlib.py", line 17, in __enter__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
self.gen.next()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 97, 
in acquire
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self.get(timeout=self._connection_get_timeout)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/eventlet/eventlet/queue.py", line 287, in get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return self._get()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
155, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
ConnectionPool._get(self)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
120, in _get
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     conn = 
self._create_connection()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/src/keystone/keystone/common/cache/_memcache_pool.py", line 
149, in _create_connection
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     return 
_MemcacheClient(self.urls, **self._arguments)
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi   File 
"/opt/openstack/lib/python2.7/site-packages/memcache.py", line 228, in __init__
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi     super(Client, 
self).__init__()
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi TypeError: super(type, 
obj): obj must be an instance or subtype of type
  2015-08-13 00:11:44.490 689 TRACE keystone.common.wsgi

  when I change with

  --- a/keystone/common/cache/_memcache_pool.py
  +++ b/keystone/common/cache/_memcache_pool.py
  -_MemcacheClient = type('_MemcacheClient', (object,),
  +memcache.Client = type('memcache.Client', (object,),
                          dict(memcache.Client.__dict__))

   _PoolItem = collections.namedtuple('_PoolItem', ['ttl', 'connection'])
  @@ -146,7 +146,7 @@ class MemcacheClientPool(ConnectionPool):
           self._hosts_deaduntil = [0] * len(urls)

       def _create_connection(self):
  -        return _MemcacheClient(self.urls, **self._arguments)
  +        return memcache.Client(self.urls, **self._arguments)

       def _destroy_connection(self, conn):
           conn.disconnect_all()

  It works well

To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1484163/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to