Activity log for bug #1700852

Date Who What changed Old value New value Message
2017-06-27 22:21:36 Steve McLellan bug added bug
2017-06-27 22:22:42 Lance Bragstad tags performance
2017-06-27 22:23:16 Lance Bragstad nominated for series keystone/newton
2017-06-27 22:23:16 Lance Bragstad bug task added keystone/newton
2017-06-27 22:23:16 Lance Bragstad nominated for series keystone/ocata
2017-06-27 22:23:16 Lance Bragstad bug task added keystone/ocata
2017-06-27 22:23:25 Lance Bragstad keystone/newton: status New Confirmed
2017-06-27 22:23:28 Lance Bragstad keystone/ocata: status New Confirmed
2017-06-27 22:23:30 Lance Bragstad keystone: status New Confirmed
2017-06-27 22:23:35 Lance Bragstad keystone/newton: importance Undecided Low
2017-06-27 22:23:41 Lance Bragstad keystone/newton: status Confirmed Won't Fix
2017-06-27 22:23:47 Lance Bragstad keystone/newton: importance Low Undecided
2017-06-27 22:23:51 Lance Bragstad keystone: importance Undecided Medium
2017-06-27 22:23:54 Lance Bragstad keystone/ocata: importance Undecided Medium
2017-06-27 22:24:00 Lance Bragstad tags performance ocata-backport-potential performance
2017-06-27 22:24:38 Lance Bragstad keystone: milestone pike-3
2017-06-28 15:16:53 Steve McLellan description With a large number of role assignments (e.g 500) it becomes very slow to list the projects a user has access to (via /users/<id>/projects). I'm seeing times of around 4 seconds versus 0.1 for a user with a couple of assignments. Instrumenting list_projects_for_user (https://github.com/openstack/keystone/blob/stable/newton/keystone/assignment/core.py#L268), where each number is the time elapsed since the start of list_projects_for_user, I get: list_projects_for_user 3.998 role_assignments list_projects_for_user 3.999 project_ids list_projects_for_user 4.105 list_projects The time is spent on the call made to list_role_assignments on line 269 which in turns calls _list_effective_role_assignments at https://github.com/openstack/keystone/blob/stable/newton/keystone/assignment/core.py#L986. Listing role assignments for a user directly (with GET /role_assignments?user.id=<id>) is very fast, which is further indication that something in the effective role processing is the cause. I haven't yet timed the internal of _list_effective_role_assignments. Running keystone newton (though I believe this would apply to master) with users in LDAP but roles and projects managed by keystone. With a large number of role assignments (e.g 500) it becomes very slow to list the projects a user has access to (via /users/<id>/projects). I'm seeing times of around 4 seconds versus 0.1 for a user with a couple of assignments. Instrumenting list_projects_for_user (https://github.com/openstack/keystone/blob/stable/newton/keystone/assignment/core.py#L268), where each number is the time elapsed since the start of list_projects_for_user, I get:   list_projects_for_user 3.998 role_assignments   list_projects_for_user 3.999 project_ids   list_projects_for_user 4.105 list_projects The time is spent on the call made to list_role_assignments on line 269 which in turns calls _list_effective_role_assignments at https://github.com/openstack/keystone/blob/stable/newton/keystone/assignment/core.py#L986. Listing role assignments for a user directly (with GET /role_assignments?user.id=<id>) is very fast, which is further indication that something in the effective role processing is the cause. I haven't yet timed the internal of _list_effective_role_assignments. Running keystone mitaka (though I believe this would apply to master) with users in LDAP but roles and projects managed by keystone.
2017-06-28 18:10:07 Lance Bragstad tags ocata-backport-potential performance ocata-backport-potential office-hours performance
2017-07-25 17:01:30 Lance Bragstad keystone: milestone pike-3 pike-rc1
2017-07-25 17:08:15 OpenStack Infra keystone: status Confirmed In Progress
2017-07-25 17:08:15 OpenStack Infra keystone: assignee Lance Bragstad (lbragstad)
2017-08-10 21:01:26 OpenStack Infra keystone: status In Progress Fix Released