[
https://issues.apache.org/jira/browse/JCR-2690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899785#comment-15899785
]
Vinayak commented on JCR-2690:
------------------------------
Hi Everyone,
We are also facing this issue in our environment and when we took thread dump ,
we get the following output.\
"135.163.93.15 [1488902482918] GET
/apps/att/utilities/translator.translations.json HTTP/1.1" daemon prio=10
tid=0x00007f510400d800 nid=0x6798 waiting for monitor entry [0x00007f4d38404000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:622)
- waiting to lock <0x000000059807f678> (a
org.apache.jackrabbit.core.ItemManager)
at
org.apache.jackrabbit.core.security.authorization.acl.CompiledPermissionsImpl.canRead(CompiledPermissionsImpl.java:241)
- locked <0x00000005eab879f0> (a java.lang.Object)
Please let us know how we can resolve it
Regards
> 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: Sub-task
> Components: security
> Affects Versions: 2.1
> Reporter: Honwai Wong
> Assignee: angela
> 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 was sent by Atlassian JIRA
(v6.3.15#6346)