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)