KVS cache backend incompatible with redis-py

Bug #1417737 reported by Alexander Makarov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Identity (keystone)
Fix Released
Medium
Alexander Makarov

Bug Description

Created Redis cache backend: https://review.openstack.org/#/c/150844/

Tempest revealed problem with locking:

<11>Feb 3 14:56:14 node-27 keystone-all 'LuaLock' object has no attribute 'lock_timeout'
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi Traceback (most recent call last):
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/common/wsgi.py", line 223, in _call_
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi result = method(context, **params)
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/token/controllers.py", line 452, in delete_token
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi self.token_provider_api.revoke_token(token_id)
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/token/provider.py", line 485, in revoke_token
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi self._persistence.delete_token(token_id=token_id)
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/token/persistence/core.py", line 106, in delete_token
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi self.driver.delete_token(unique_id)
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/token/persistence/backends/kvs.py", line 254, in delete_token
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi self._add_to_revocation_list(data, lock)
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py", line 405, in _exit_
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi self.release()
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py", line 398, in release
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi if not self.expired:
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi File "/usr/lib/python2.7/dist-packages/keystone/common/kvs/core.py", line 389, in expired
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi if self.mutex.lock_timeout == 0:
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi AttributeError: 'LuaLock' object has no attribute 'lock_timeout'
2015-02-03 14:56:14.890 8959 TRACE keystone.common.wsgi

Changed in keystone:
assignee: nobody → Alexander Makarov (amakarov)
Changed in keystone:
status: New → Triaged
importance: Undecided → Medium
milestone: none → kilo-3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/153307

Changed in keystone:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)

Reviewed: https://review.openstack.org/153307
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=2a8b646e7365584dcf7ba0a9a97b6d8ce495a19a
Submitter: Jenkins
Branch: master

commit 2a8b646e7365584dcf7ba0a9a97b6d8ce495a19a
Author: Alexander Makarov <email address hidden>
Date: Thu Feb 5 20:28:57 2015 +0300

    Fix for KVS cache backend incompatible with redis-py

    lock_timeout has different identifiers across different backends.
    This patch makes KeyValueStoreLock to use internal lock_timeout
    instead of relying on naming in backend implementations.

    Change-Id: Ie0f8780cc85f02cfa768b46b8942c1e5a7685fb9
    Closes-Bug: 1417737

Changed in keystone:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in keystone:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in keystone:
milestone: kilo-3 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.