[
https://issues.apache.org/jira/browse/SLING-4460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler updated SLING-4460:
------------------------------------
Fix Version/s: Commons Scheduler 2.4.6
> QuartzScheduler component is registered resulting in sling jobs not being
> sent to job consumer
> ----------------------------------------------------------------------------------------------
>
> Key: SLING-4460
> URL: https://issues.apache.org/jira/browse/SLING-4460
> Project: Sling
> Issue Type: Bug
> Components: Commons
> Affects Versions: Commons Scheduler 2.4.4
> Environment: 3.3.4-11.omtr.el6.x86_64 GNU/Linux, java version
> "1.7.0_60"
> Reporter: Ken Russell
> Fix For: Commons Scheduler 2.4.6
>
> Attachments: QuartzSchedulerComponent.pdf
>
>
> Sling jobs were not being processed on an instance due to the QuartzScheduler
> component being in a registered state (see attached image for the component’s
> state). The Sling job processor was not sending the job to our job consumer.
> From our error logs we could see that the job was created but the job
> consumer never received it. Looking at the crx we could see the job under
> /var/eventing. Our bundles & components were all active (we explicitly
> checked the component that consumes the job).
> Occasionally we see this problem on a restart of a production instance. This
> is an instance on our QA environment (we are hoping they are the same but
> will continue to monitor on subsequent production deployments).
> We noticed in the log file lots of exceptions related to QuartzScheduler
> indicating that the “Scheduler is not available anymore.” Truncated exception:
> {CODE}
> 26.02.2015 22:05:16.904 *WARN* [<redacted> [1424988304541] POST
> /system/console/bundles/342 HTTP/1.1]
> org.apache.sling.discovery.impl.DiscoveryServiceImpl sendTopologyEvent:
> handler threw exception. handler:
> org.apache.sling.event.impl.jobs.config.JobManagerConfiguration@651e2ff3,
> exception: java.lang.IllegalStateException: Scheduler is not available
> anymore. java.lang.IllegalStateException: Scheduler is not available anymore.
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.SchedulerServiceFactory.schedule(SchedulerServiceFactory.java:56)
> at
> org.apache.sling.event.impl.jobs.config.JobManagerConfiguration.startProcessing(JobManagerConfiguration.java:500)
> at
> org.apache.sling.event.impl.jobs.config.JobManagerConfiguration.handleTopologyEvent(JobManagerConfiguration.java:551)
> at
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.sendTopologyEvent(DiscoveryServiceImpl.java:192)
> at
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.handlePotentialTopologyChange(DiscoveryServiceImpl.java:484)
> at
> org.apache.sling.discovery.impl.DiscoveryServiceImpl.bindPropertyProviderInteral(DiscoveryServiceImpl.java:272)
> {CODE}
> From grepping the error log we saw that the QuartzScheduler has been shutdown
> previously:
> {CODE}
> > cat error.log.2015-02-25 error.log | grep QuartzScheduler
> 25.02.2015 19:16:31.246 *INFO* [OsgiInstallerImpl]
> org.quartz.core.QuartzScheduler Scheduler
> ApacheSling_$_Tue_Feb_24_10:52:11_UTC_2015 shutting down.
> 25.02.2015 19:16:31.246 *INFO* [OsgiInstallerImpl]
> org.quartz.core.QuartzScheduler Scheduler
> ApacheSling_$_Tue_Feb_24_10:52:11_UTC_2015 paused.
> 25.02.2015 19:16:31.251 *INFO* [OsgiInstallerImpl]
> org.quartz.core.QuartzScheduler Scheduler
> ApacheSling_$_Tue_Feb_24_10:52:11_UTC_2015 shutdown complete.
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.schedule(QuartzScheduler.java:578)
> at
> org.apache.sling.commons.scheduler.impl.QuartzScheduler.scheduleJob(QuartzScheduler.java:634)
> {CODE}
> Stop-Starting the QuartzScheduler resulted in all the jobs being processed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)