You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Thomas Mueller (JIRA)" <ji...@apache.org> on 2019/05/08 12:26:00 UTC

[jira] [Created] (SLING-8407) JobManagerImpl.findJobs should prevent traversal

Thomas Mueller created SLING-8407:
-------------------------------------

             Summary: JobManagerImpl.findJobs should prevent traversal
                 Key: SLING-8407
                 URL: https://issues.apache.org/jira/browse/SLING-8407
             Project: Sling
          Issue Type: Improvement
          Components: Event
            Reporter: Thomas Mueller


The method [JobManagerImpl.findJobs|https://github.com/apache/sling-org-apache-sling-event/blob/master/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java#L373] runs a JCR query to find all jobs for a topic.

It is possible that such a query is running while the repository isn't initialized yet, meaning while the index isn't available yet. What is happening in this case is that the query is traversing all nodes below that path, triggering a warning that the query doesn't use an index. It is sometimes happening when a health check is running before the repository is initialized (ReplicationQueueHealthCheck and DistributionQueueHealthCheck).

It doesn't make sense that the query traverses the nodes. It should use an index. If the index isn't available yet, it should fail. Therefore, the query should use "option(traversal fail)". That would result in an exception that can be caught.  I will log a related issue to change the health checks to process this exception and return HEALTH_CHECK_ERROR for this case.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)