Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-8946

Non-deterministic shadowing of resource observation

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Reopened
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: Resource Resolver 1.5.34
    • Fix Version/s: None
    • Component/s: ResourceResolver
    • Labels:
      None

      Description

      The BasicObservationReporter implements shadowing of events being propagated per ResourceProvider instance [1]. Assuming we do have 2 ResourceProviders registered, where the one shadows the other like this:

      • RP A registered on /
      • RP B registered on /path

      then currently the excludes given to the BasicObservationReporter are different depending on either RP A or RP B gets registered first:

      • RP A before RP B => excludes are empty
      • RP B before RP A => excludes contain /path

      This is because only the newly registered RP gets its ProviderContext updated [2]

      Same applies if RP B is registered before RP A and gets unregistered. In that case the ObservationReporter of RP A stays untouched.

      [1] https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java#L102
      [2] https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java#L358

        Attachments

        1. PerformanceScript.sh
          0.8 kB
          Sonal Gupta

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                diru Dirk Rudolph
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1.5h
                  1.5h