[Rt-devel] Why are Groups cachedmembers of themselves?
joby at u.washington.edu
Fri Oct 20 18:16:52 EDT 2006
The comments from Group_Overlay::Create say:
# Now we make the group a member of itself as a cached group member
# this needs to exist so that group ACL checks don't fall over.
# you're checking CachedGroupMembers to see if the principal in question
# is a member of the principal the rights have been granted too
# in the ordinary case, this would fail badly because it would recurse
and add all the members of this group as
# cached members. thankfully, we're creating the group now...so it has
Is this truly necessary for all groups? This is leading to a huge
inflation in the number of cachedgroupmembers records. Just with a
simple example of every ticket averaging 1 requestor, 1 owner, and 1 cc,
this means that there will be 10 cachedgroupmembers records per ticket
(one for all four roles, and 2 for each real member) -- where only 3
should be necessary. We're rapidly approaching 100,000 tickets so that
is 700,000 unnecessary records.
So why is this necessary? Is it for ACL checks on User Defined groups?
C&C SSG, University of Washington
More information about the Rt-devel