[ 
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)

Reply via email to