[ 
https://issues.apache.org/jira/browse/JCR-2950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14061470#comment-14061470
 ] 

Arturo Alfaro commented on JCR-2950:
------------------------------------

We're running into a similar error in AEM 5.6.1 - CRX 2.4.42 Is there any 
chance of being the same issue ?

"172.17.11.30 [1405348503709] GET 
/content/clientname_com/desktop/north_america/en_us/support/index.html 
HTTP/1.1" - Thread t@366
   java.lang.Thread.State: BLOCKED
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:622)
        - waiting to lock <16742fd2> (a org.apache.jackrabbit.core.ItemManager) 
owned by "172.17.11.30 [1405348326287] GET 
/content/clientname_com/mobile/latam/es_ve/suppor/index.html HTTP/1.1" t@324
        at 
org.apache.jackrabbit.core.security.authorization.acl.EntryCollector.getNodeById(EntryCollector.java:217)
        at 
org.apache.jackrabbit.core.security.authorization.acl.CachingEntryCollector.getEntries(CachingEntryCollector.java:110)
        at 
org.apache.jackrabbit.core.security.authorization.acl.EntryCollector.collectEntries(EntryCollector.java:147)
        at 
org.apache.jackrabbit.core.security.authorization.acl.CompiledPermissionsImpl.canRead(CompiledPermissionsImpl.java:263)
        - locked <5adb15a2> (a java.lang.Object)
        at 
org.apache.jackrabbit.core.security.DefaultAccessManager.canRead(DefaultAccessManager.java:265)
        at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:438)
        at 
org.apache.jackrabbit.core.ItemManager.createItemData(ItemManager.java:848)
        at 
org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:391)
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:328)
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:622)
        - locked <6c858454> (a org.apache.jackrabbit.core.ItemManager)
        at 
org.apache.jackrabbit.core.LazyItemIterator.prefetchNext(LazyItemIterator.java:122)
        at 
org.apache.jackrabbit.core.LazyItemIterator.next(LazyItemIterator.java:257)
        at 
org.apache.jackrabbit.core.LazyItemIterator.nextProperty(LazyItemIterator.java:174)
        at 
org.apache.sling.jcr.resource.JcrPropertyMap.readFully(JcrPropertyMap.java:404)
        at 
org.apache.sling.jcr.resource.JcrPropertyMap.entrySet(JcrPropertyMap.java:202)

> CachingEntryCollector ineffective if number of accessed policies exceeds 
> cache size
> -----------------------------------------------------------------------------------
>
>                 Key: JCR-2950
>                 URL: https://issues.apache.org/jira/browse/JCR-2950
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core, security
>    Affects Versions: 2.2.12, 2.4.2, 2.6
>         Environment: Repository with ACEs > 1000
>            Reporter: Honwai Wong
>            Assignee: Julian Reschke
>         Attachments: CachingEntryCollector.ConcurrentCache-trunk.patch, 
> JCR-2950-concurrent-cache-2.patch, JCR-2950-futures.patch, 
> JCR-2950-futures_2.patch, JCR-2950-futures_3.patch, JCR-2950-futures_4.patch, 
> JCR-2950-refactor+rootnode.patch, JCR-2950-refactor+rootnode_2.patch , 
> JCR-2950-refactor+rootnode_3.patch, JCR-2950-refactor+rootnode_4.patch, 
> JCR-2950-refactor+rootnode_5.patch, JCR-2950-refactor+rootnode_6.patch, 
> JCR-2950-refactor+rootnode_7.patch, JCR-2950-refactor.patch, 
> JCR-2950-throttle.patch, JCR-2950-throttle2.patch, 
> JCR-2950_entryseparation-multisessionhack.patch, 
> JCR-2950_entryseparation.patch, JCR-2950_performance_tests.patch.gz, 
> auth-prefilled-cache.csv, cache-empty-aces-scfixed.csv, cache-empty-aces.csv, 
> cache-empty-aces.png, jcr-2950-2.csv, jcr-2950-2.png, jcr-2950-csv.sh, 
> jcr-2950.csv, jcr-2950.png, syssessioncomparison.csv, test2950.sh
>
>
> The CachingEntryCollector's cache (LRUMap, max size: 1000) seems to become 
> ineffective in case there are more than 1000 ACEs present in the repository. 
> Since access to the cache is synchronized, many threads are basically 
> blocked, waiting to get access to the cache.
> Java callstack:
> at 
> org/apache/jackrabbit/core/security/authorization/acl/CachingEntryCollector.getEntries(CachingEntryCollector.java:99(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/security/authorization/acl/EntryCollector.collectEntries(EntryCollector.java:134(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/security/authorization/acl/CompiledPermissionsImpl.canRead(CompiledPermissionsImpl.java:250(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/security/DefaultAccessManager.canRead(DefaultAccessManager.java:251(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/ItemManager.canRead(ItemManager.java:426(Compiled 
> Code))
> at 
> org/apache/jackrabbit/core/ItemManager.createItemData(ItemManager.java(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/ItemManager.getItemData(ItemManager.java:379(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/ItemManager.itemExists(ItemManager.java:292(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/ItemManager.itemExists(ItemManager.java:464(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/session/SessionItemOperation$1.perform(SessionItemOperation.java:49(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/session/SessionItemOperation$1.perform(SessionItemOperation.java:46(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/session/SessionItemOperation.perform(SessionItemOperation.java:187(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/session/SessionState.perform(SessionState.java:200(Compiled
>  Code))
> at 
> org/apache/jackrabbit/core/SessionImpl.perform(SessionImpl.java:355(Compiled 
> Code))
> at 
> org/apache/jackrabbit/core/SessionImpl.itemExists(SessionImpl.java:751(Compiled
>  Code))



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to