← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1257390] Re: races in assignment manager can cause spurious 404 when removing user from project

 

** Changed in: keystone
       Status: Fix Committed => Fix Released

** Changed in: keystone
    Milestone: None => icehouse-2

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

Title:
  races in assignment manager can cause spurious 404 when removing user
  from project

Status in OpenStack Identity (Keystone):
  Fix Released

Bug description:
  Similar kind of bug as described in bug #1246489.

  When removing a user from a project, the assignment manager retrieves
  a list of all roles the user has on the project, then removes each
  role. Each (user, role, project) tuple is removed with a separate call
  into the driver. If, before a particular role has been removed, that
  role is deleted by another request calling into the manager (i.e., via
  delete_role), the call into the driver by the user removal request
  will raise a RoleNotFound exception and the request will return an
  HTTP 404 error. Furthermore, any roles in the list after the
  exceptional role will not be deleted. Another call to
  Manager.remove_user_from_project will remove the remaining roles.

  The 404 can easily be avoided by either putting a "try: except:
  RoleNotFound .. pass" around the
  driver.remove_role_from_user_and_project calls.

  Alternatively, a begin/end transaction interface could be added to the
  driver. In its simplest form, this interface could be implemented by
  serializing all transactions with a mutex. The SQL driver could
  implement the interface with database transactions.

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


References