jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Honwai Wong (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-2690) Cache of o.a.j.c.security.authorization.AbstractCompiledPermissions should be configurable
Date Thu, 29 Jul 2010 15:21:17 GMT
Cache of o.a.j.c.security.authorization.AbstractCompiledPermissions should be configurable
------------------------------------------------------------------------------------------

                 Key: JCR-2690
                 URL: https://issues.apache.org/jira/browse/JCR-2690
             Project: Jackrabbit Content Repository
          Issue Type: Improvement
          Components: security
    Affects Versions: 2.1.0
            Reporter: Honwai Wong
            Priority: Minor


It seems that the LRUMap used to cache permission-results may be too small for large repositories.
It is currently hardcoded to 1000. Thread dump show that threads are blocked while reading
ACL information from the repository instead of returning them from the cache:

java.lang.Thread.State: BLOCKED (on object monitor)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:167)
	- waiting to lock <0x00002aaae4045558> (a org.apache.jackrabbit.core.state.LocalItemStateManager)
	at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:200)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:152)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(HierarchyManagerImpl.java:115)
	at org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(CachingHierarchyManager.java:151)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.resolveNodePath(HierarchyManagerImpl.java:372)
	at org.apache.jackrabbit.core.ItemManager.nodeExists(ItemManager.java:484)
	at org.apache.jackrabbit.core.SessionImpl.nodeExists(SessionImpl.java:1446)
	at org.apache.jackrabbit.core.security.authorization.acl.ACLProvider$AclPermissions.buildResult(ACLProvider.java:379)
	at org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.getResult(AbstractCompiledPermissions.java:50)
	- locked <0x00002aadb4503618> (a org.apache.commons.collections.map.LRUMap)
	at org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.grants(AbstractCompiledPermissions.java:86)
	at org.apache.jackrabbit.core.security.DefaultAccessManager.isGranted(DefaultAccessManager.java:246)
	at org.apache.jackrabbit.core.security.DefaultAccessManager.isGranted(DefaultAccessManager.java:234)
	at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:447)


The size of the LRUMap used by o.a.j.c.security.authorization.AbstractCompiledPermissions
should ideally be configurable to allow for adjusting this cache to improve permission lookup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message