-
Bug
-
Resolution: Fixed
-
Medium
-
6.0.2, 6.0.6, 6.2.2, 6.4.2, 6.6.10, 6.10.0, 6.13.4, 6.13.11
-
77
-
Severity 3 - Minor
-
7
-
Summary
There are many errors "executeClusteredJobWithRecoveryGuard Unhandled exception" in atlassian-confluence.log after migrating from Cloud to Server or after upgrading Confluence
ERROR [Caesium-1-2] [scheduler.caesium.impl.CaesiumSchedulerService] executeClusteredJobWithRecoveryGuard Unhandled exception during the attempt to execute job '24ec482d-9c69-43bd-bcdf-13e619147a0c-CrowdDirectorySynchroniserJobRunner'; will attempt recovery in 60 seconds
Environment
- Migrated from Confluence Cloud to Server 6.0.2
- Confluence Upgrade
Steps to Reproduce
- Restore Confluence Cloud backup into Confluence Server
- Restart Confluence
Expected Results
No errors in atlassian-confluence.log
Actual Results
The below exception is thrown in the atlassian-confluence.log file:
2017-03-03 11:01:24,175 ERROR [Caesium-1-2] [scheduler.caesium.impl.CaesiumSchedulerService] executeClusteredJobWithRecoveryGuard Unhandled exception during the attempt to execute job '24ec482d-9c69-43bd-bcdf-13e619147a0c-CrowdDirectorySynchroniserJobRunner'; will attempt recovery in 60 seconds com.atlassian.scheduler.SchedulerRuntimeException: The parameters cannot be accessed: com.atlassian.scheduler.core.JobRunnerNotRegisteredException: No job runner registered for job runner key '24ec482d-9c69-43bd-bcdf-13e619147a0c-CrowdDirectorySynchroniserJobRunner' at com.atlassian.scheduler.core.status.UnusableJobDetails.getParameters(UnusableJobDetails.java:52) at com.atlassian.scheduler.core.status.LazyJobDetails.getParameters(LazyJobDetails.java:94) at com.atlassian.confluence.impl.schedule.caesium.ConfluenceSchedulerService.enqueueJob(ConfluenceSchedulerService.java:132) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:437) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:462) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:390) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:285) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:282) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:65) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:59) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:34) at java.lang.Thread.run(Thread.java:745) Caused by: com.atlassian.scheduler.core.JobRunnerNotRegisteredException: No job runner registered for job runner key '24ec482d-9c69-43bd-bcdf-13e619147a0c-CrowdDirectorySynchroniserJobRunner' at com.atlassian.scheduler.core.status.UnusableJobDetails.<init>(UnusableJobDetails.java:37) at com.atlassian.scheduler.core.status.LazyJobDetails$1.create(LazyJobDetails.java:85) at com.atlassian.scheduler.core.status.LazyJobDetails$1.create(LazyJobDetails.java:58) at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:325) at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112) at com.atlassian.scheduler.core.status.LazyJobDetails.getDelegate(LazyJobDetails.java:121) ... 11 more
Workaround
- Shut down Confluence
- Backup scheduler_clustered_jobs table or the whole Confluence database This must be done
- Executing the following SQL query to clear off the table :
TRUNCATE TABLE scheduler_clustered_jobs;
- Start Confluence
NB: This table will repopulate with the scheduled jobs on startup so it's safe to truncate (but always a good idea to take a backup anyway, in case a typo or error causes an unintended deletion or change).