Bug 587754 - upgrading from 1.1.0 caused server log exceptions due to classloader issues
Summary: upgrading from 1.1.0 caused server log exceptions due to classloader issues
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: RHQ Project
Classification: Other
Component: Core Server
Version: 1.2.1
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
: ---
Assignee: Joseph Marques
QA Contact: Rajan Timaniya
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-04-30 19:24 UTC by Joseph Marques
Modified: 2010-08-12 16:58 UTC (History)
1 user (show)

Fixed In Version: 2.4
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-08-12 16:58:07 UTC
Embargoed:


Attachments (Terms of Use)

Description Joseph Marques 2010-04-30 19:24:47 UTC
Description of problem:

* 1.1.0 was released Oct 2008
* ClusterManagerJob was renamed to CloudManagerJob in Dec 2008
* StartupServlet has no mechanism for removing Jobs that no longer exist, it only knows how to reschedule them (to accommodate changes in their frequency or delay)

Version-Release number of selected component (if applicable):

1.1.0

Steps to Reproduce:
1. Install 1.1.0
2. Upgrade to 1.3.0
3. Tail server log
  
Actual results:

Server log will report the following...

2010-04-30 09:09:55,207 ERROR [org.quartz.impl.jdbcjobstore.JobStoreCMT] MisfireHandler: Error handling misfires: Couldn't store trigger 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob
org.quartz.JobPersistenceException: Couldn't store trigger 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob [See nested exception: java.lang.ClassNotFoundException: No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob]
       at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1246)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport.doUpdateOfMisfiredTrigger(JobStoreSupport.java:1014)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:956)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3126)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3887)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3907)
Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob
       at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306)
       at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:521)
       at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
       at org.quartz.simpl.InitThreadContextClassLoadHelper.loadClass(InitThreadContextClassLoadHelper.java:75)
       at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:119)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectJobDetail(StdJDBCDelegate.java:897)
       at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1202)
       ... 5 more 

Expected results:

Server startup should be fine, no errors should be reported

Additional info:

Temporary workaround for customers would be to remove these stale entries from the Quartz tables by executing the following SQL against their database:

DELETE FROM rhq_qrtz_triggers WHERE trigger_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob';

DELETE FROM rhq_qrtz_simple_triggers WHERE trigger_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob';

DELETE FROM rhq_qrtz_job_details WHERE job_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob';

Comment 1 Joseph Marques 2010-04-30 20:58:01 UTC
commit 56eb99b9dfc6029e54e887fd1d670af4377e65ef

remove references to deprecated job 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' upon server startup

Comment 2 Rajan Timaniya 2010-06-14 12:28:50 UTC
Verified on JON build# 210
(http://hudson-qe.rhq.rdu.redhat.com:8080/job/jon/210/)

Steps:
1) Install JON 2.1
2) Upgrade to JON 2.4 (JON build# 210)
3) Tail server log

Server startup fine without error/exception like:
ERROR [org.quartz.impl.jdbcjobstore.JobStoreCMT]
MisfireHandler: Error handling misfires: Couldn't store trigger
'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for
'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No
ClassLoaders found for:
org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob

Comment 3 Corey Welton 2010-08-12 16:58:07 UTC
Mass-closure of verified bugs against JON.


Note You need to log in before you can comment on or make changes to this bug.