Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-2950

CachingEntryCollector ineffective if number of accessed policies exceeds cache size

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.2.12, 2.4.2, 2.6
    • None
    • jackrabbit-core, security
    • 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

        1. CachingEntryCollector.ConcurrentCache-trunk.patch
          5 kB
          Alex Deparvu
        2. JCR-2950-refactor.patch
          10 kB
          Julian Reschke
        3. JCR-2950-refactor+rootnode.patch
          10 kB
          Julian Reschke
        4. JCR-2950-refactor+rootnode_2.patch
          11 kB
          Angela Schreiber
        5. JCR-2950-refactor+rootnode_3.patch
          16 kB
          Julian Reschke
        6. JCR-2950-refactor+rootnode_4.patch
          18 kB
          Julian Reschke
        7. JCR-2950-refactor+rootnode_5.patch
          18 kB
          Julian Reschke
        8. JCR-2950-refactor+rootnode_6.patch
          19 kB
          Angela Schreiber
        9. JCR-2950-refactor+rootnode_7.patch
          20 kB
          Julian Reschke
        10. JCR-2950-throttle.patch
          2 kB
          Julian Reschke
        11. JCR-2950-throttle2.patch
          3 kB
          Julian Reschke
        12. JCR-2950-futures.patch
          5 kB
          Julian Reschke
        13. JCR-2950-futures_2.patch
          6 kB
          Angela Schreiber
        14. JCR-2950_performance_tests.patch.gz
          435 kB
          Angela Schreiber
        15. JCR-2950-futures_3.patch
          7 kB
          Julian Reschke
        16. JCR-2950-futures_4.patch
          7 kB
          Julian Reschke
        17. JCR-2950-concurrent-cache-2.patch
          3 kB
          Julian Reschke
        18. JCR-2950_entryseparation.patch
          45 kB
          Angela Schreiber
        19. JCR-2950_entryseparation-multisessionhack.patch
          38 kB
          Julian Reschke
        20. jcr-2950.csv
          3 kB
          Julian Reschke
        21. jcr-2950.png
          130 kB
          Julian Reschke
        22. jcr-2950-csv.sh
          0.3 kB
          Julian Reschke
        23. test2950.sh
          0.7 kB
          Julian Reschke
        24. jcr-2950-2.png
          107 kB
          Julian Reschke
        25. jcr-2950-2.csv
          2 kB
          Julian Reschke
        26. syssessioncomparison.csv
          0.5 kB
          Julian Reschke
        27. auth-prefilled-cache.csv
          0.2 kB
          Julian Reschke
        28. cache-empty-aces.png
          76 kB
          Julian Reschke
        29. cache-empty-aces.csv
          1.0 kB
          Julian Reschke
        30. cache-empty-aces-scfixed.csv
          0.9 kB
          Julian Reschke

        Activity

          People

            Unassigned Unassigned
            hwong Honwai Wong
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated: