← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1440493] Re: Crash with python-memcached==1.5.4

 

** Also affects: keystone/kilo
   Importance: Undecided
       Status: New

** Changed in: keystone
    Milestone: None => liberty-1

** Also affects: keystone/liberty
   Importance: High
     Assignee: Alexander Makarov (amakarov)
       Status: Fix Committed

** Changed in: keystone/kilo
    Milestone: None => kilo-rc2

** Changed in: keystone/kilo
   Importance: Undecided => High

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

Title:
  Crash with python-memcached==1.5.4

Status in OpenStack Identity (Keystone):
  Fix Committed
Status in Keystone kilo series:
  New
Status in Keystone liberty series:
  Fix Committed
Status in OpenStack Identity  (Keystone) Middleware:
  New

Bug description:
  There's some magic going on at line:
  https://github.com/openstack/keystone/blob/2014.2.2/keystone/common/cache/_memcache_pool.py#L46

  This magic is broken due to the fact that python-memcached added a super(...) initalization at
  https://github.com/linsomniac/python-memcached/blob/master/memcache.py#L218
  https://github.com/linsomniac/python-memcached/commit/45403325e0249ff0f61d6ae449a7daeeb7e852e5

  Due to this change, keystone can no longer work with the latest
  python-memcached version:

  Traceback (most recent call last):
    File ""keystone/common/wsgi.py", line 223, in __call__
      result = method(context, **params)
    File ""keystone/identity/controllers.py", line 76, in create_user
      self.assignment_api.get_project(default_project_id)
    File ""dogpile/cache/region.py", line 1040, in decorate
      should_cache_fn)
    File ""dogpile/cache/region.py", line 651, in get_or_create
      async_creator) as value:
    File ""dogpile/core/dogpile.py", line 158, in __enter__
      return self._enter()
    File ""dogpile/core/dogpile.py", line 91, in _enter
      value = value_fn()
    File ""dogpile/cache/region.py", line 604, in get_value
      value = self.backend.get(key)
    File ""dogpile/cache/backends/memcached.py", line 149, in get
      value = self.client.get(key)
    File ""keystone/common/cache/backends/memcache_pool.py", line 35, in _run_method
      with self.client_pool.acquire() as client:
    File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
      return self.gen.next()
    File ""keystone/common/cache/_memcache_pool.py", line 97, in acquire
      conn = self.get(timeout=self._connection_get_timeout)
    File ""eventlet/queue.py", line 293, in get
      return self._get()
    File ""keystone/common/cache/_memcache_pool.py", line 155, in _get
      conn = ConnectionPool._get(self)
    File ""keystone/common/cache/_memcache_pool.py", line 120, in _get
      conn = self._create_connection()
    File ""keystone/common/cache/_memcache_pool.py", line 149, in _create_connection
      return _MemcacheClient(self.urls, **self._arguments)
    File ""memcache.py", line 228, in __init__
      super(Client, self).__init__()
  TypeError: super(type, obj): obj must be an instance or subtype of type

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


References