Timothee Maret created SLING-6503:
-------------------------------------

             Summary: Concurrency issue can prevent repository packages to be 
cleaned up   
                 Key: SLING-6503
                 URL: https://issues.apache.org/jira/browse/SLING-6503
             Project: Sling
          Issue Type: Bug
          Components: Content Distribution
    Affects Versions: Content Distribution Core 0.1.18
            Reporter: Timothee Maret
            Assignee: Timothee Maret
             Fix For: Content Distribution Core 0.1.20


In SCD setups with more than one export queue and storing packages in the 
repository, packages may not be collected after being distributed to all queues.

This is typically the case on the author instance of a Sync setup.

The current implementation [0] stores a resource in the repository in order to 
keep track of each consumer of the package. When each consumer is done 
distributing to its queue, it checks if there is no more registered resources 
and remove the package if it is the case.

The problem is that consumers run concurrently and without synchronisation, 
thus leading to situation where all consumers concurrently observe remaining 
consumers and the cleanup is never executed.

[0] 
https://github.com/apache/sling/blob/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to