Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.2.12, 2.4.2, 2.6
-
None
-
None
-
Repository with ACEs > 1000
Description
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))
Attachments
Attachments
1.
|
increase test coverage for multi-threaded ACL evaluation/modification | Open | Unassigned | |
2.
|
Use multiple sessions to calculate permissions | Open | Unassigned |