-
Bug
-
Resolution: Fixed
-
Medium (View bug fix roadmap)
-
7.0.0
-
7
-
Summary
When upgrading from JIRA 6.x to JIRA 7.x on Oracle database, there will be inconsistency errors on column type for column PARAMETERS. The error is affecting the clusteredjob table which stores cron expression for JIRA 7.0+.
In JIRA 6.x, the column type is LONG RAW while in JIRA 7.x is BLOB
Environment
JIRA connected to supported Oracle database
Steps to Reproduce
- Install JIRA 6.4.12 with Oracle 12c database
- Inspect the column type for column "PARAMETERS" of table "clusteredjob"
- Upgrade to JIRA 7.0.0 via Rapid Upgrade Method
- Check the logs for the error message
Expected Results
No error for the UpgradeTask
Actual Results
The following errors can be found in catalina.out:
2015-11-24 17:47:11,692 localhost-startStop-1 INFO [o.o.c.entity.jdbc.DatabaseUtil] Database Driver Name is Oracle JDBC driver 2015-11-24 17:47:11,692 localhost-startStop-1 INFO [o.o.c.entity.jdbc.DatabaseUtil] Database Driver Version is 11.2.0.2.0 2015-11-24 17:47:12,921 localhost-startStop-1 ERROR [o.o.c.entity.jdbc.DatabaseUtil] WARNING: Column "PARAMETERS" of table "clusteredjob" of entity "ClusteredJob" is of type "LONG RAW" in the database, but is defined as type "BLOB" in the entity definition.
2015-11-24 17:49:43,216 localhost-startStop-1 ERROR [c.a.j.p.dvcs.scheduler.DvcsScheduler] Unexpected error during launch org.ofbiz.core.util.GeneralRuntimeException: Error creating GenericValue (SQL Exception while getting value: (Invalid column type: getBLOB not implemented for class oracle.jdbc.driver.T4CLongRawAccessor)) at org.ofbiz.core.entity.EntityListIterator.next(EntityListIterator.java:253) at org.ofbiz.core.entity.EntityListIterator.next(EntityListIterator.java:49) at com.atlassian.jira.ofbiz.DefaultOfBizListIterator$LookaheadIterator.<init>(DefaultOfBizListIterator.java:228) at com.atlassian.jira.ofbiz.DefaultOfBizListIterator$LookaheadIterator.<init>(DefaultOfBizListIterator.java:220) at com.atlassian.jira.ofbiz.DefaultOfBizListIterator.iterator(DefaultOfBizListIterator.java:212) at com.atlassian.jira.ofbiz.WrappingOfBizListIterator.iterator(WrappingOfBizListIterator.java:146) at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.forEach(SelectQueryImpl.java:245) at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.consumeWith(SelectQueryImpl.java:227) at com.atlassian.jira.entity.SelectQueryImpl$ExecutionContextImpl.singleValue(SelectQueryImpl.java:199) at com.atlassian.jira.scheduler.OfBizClusteredJobDao.find(OfBizClusteredJobDao.java:93) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.getJobDetails(CaesiumSchedulerService.java:212) at com.atlassian.scheduler.core.DelegatingSchedulerService.getJobDetails(DelegatingSchedulerService.java:97) at com.atlassian.scheduler.compat.clustered.ClusteredCompatibilityPluginScheduler.getJobInfo(ClusteredCompatibilityPluginScheduler.java:121) at com.atlassian.scheduler.compat.AutoDetectingCompatibilityPluginScheduler.getJobInfo(AutoDetectingCompatibilityPluginScheduler.java:83) at com.atlassian.jira.plugins.dvcs.scheduler.DvcsScheduler.scheduleJob(DvcsScheduler.java:95) at com.atlassian.jira.plugins.dvcs.scheduler.DvcsScheduler.onStart(DvcsScheduler.java:79) at com.atlassian.jira.plugins.dvcs.scheduler.DvcsScheduler$1.run(DvcsScheduler.java:59) at com.atlassian.jira.plugins.dvcs.scheduler.SchedulerLauncher.runSingleJob(SchedulerLauncher.java:144) at com.atlassian.jira.plugins.dvcs.scheduler.SchedulerLauncher.onLifecycleEvent(SchedulerLauncher.java:133) at com.atlassian.jira.plugins.dvcs.scheduler.SchedulerLauncher.onStart(SchedulerLauncher.java:73) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$4.consume(DefaultLifecycleManager.java:310) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$4.consume(DefaultLifecycleManager.java:306) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecyleAware(DefaultLifecycleManager.java:344) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyOnStartIfStartedAndEnabled(DefaultLifecycleManager.java:304) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.access$300(DefaultLifecycleManager.java:50) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$3.evaluate(DefaultLifecycleManager.java:261) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$3.evaluate(DefaultLifecycleManager.java:257) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecycleAwares(DefaultLifecycleManager.java:286) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyStartableLifecycleAwares(DefaultLifecycleManager.java:255) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.startIfApplicationSetup(DefaultLifecycleManager.java:241) at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.start(DefaultLifecycleManager.java:230) at com.atlassian.sal.jira.lifecycle.JiraLifecycleManager.onJiraStart(JiraLifecycleManager.java:68) ... 3 filtered at java.lang.reflect.Method.invoke(Method.java:497) at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:48) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:107) at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160) at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79) at com.atlassian.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:84) at com.atlassian.jira.upgrade.PluginUpgradeLauncher.start(PluginUpgradeLauncher.java:35) at com.atlassian.jira.startup.ActiveServicesLauncher.start(ActiveServicesLauncher.java:57) at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postDbLaunch$175(DefaultJiraLauncher.java:140) at com.atlassian.jira.startup.DefaultJiraLauncher$$Lambda$14/681048280.run(Unknown Source) at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.doNowOrEnqueue(DatabaseConfigurationManagerImpl.java:356) at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.doNowOrWhenDatabaseActivated(DatabaseConfigurationManagerImpl.java:226) at com.atlassian.jira.startup.DefaultJiraLauncher.postDbLaunch(DefaultJiraLauncher.java:126) at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$start$173(DefaultJiraLauncher.java:92) at com.atlassian.jira.startup.DefaultJiraLauncher$$Lambda$1/105253432.run(Unknown Source) at com.atlassian.jira.util.devspeed.JiraDevSpeedTimer.run(JiraDevSpeedTimer.java:34) at com.atlassian.jira.startup.DefaultJiraLauncher.start(DefaultJiraLauncher.java:90) at com.atlassian.jira.startup.LauncherContextListener.contextInitialized(LauncherContextListener.java:84) ... 5 filtered at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.ofbiz.core.entity.GenericDataSourceException: SQL Exception while getting value: (Invalid column type: getBLOB not implemented for class oracle.jdbc.driver.T4CLongRawAccessor) at org.ofbiz.core.entity.jdbc.SqlJdbcUtil.getValue(SqlJdbcUtil.java:706) at org.ofbiz.core.entity.EntityListIterator.currentGenericValue(EntityListIterator.java:169) at org.ofbiz.core.entity.EntityListIterator.next(EntityListIterator.java:246) ... 63 more Caused by: java.sql.SQLException: Invalid column type: getBLOB not implemented for class oracle.jdbc.driver.T4CLongRawAccessor at oracle.jdbc.driver.Accessor.getBLOB(Accessor.java:1270) at oracle.jdbc.driver.OracleResultSetImpl.getBLOB(OracleResultSetImpl.java:1623) at oracle.jdbc.driver.OracleResultSetImpl.getBlob(OracleResultSetImpl.java:585) at org.apache.commons.dbcp.DelegatingResultSet.getBlob(DelegatingResultSet.java:550) at org.apache.commons.dbcp.DelegatingResultSet.getBlob(DelegatingResultSet.java:550) at org.ofbiz.core.entity.jdbc.SqlJdbcUtil.getBlobAsByteArray(SqlJdbcUtil.java:741) at org.ofbiz.core.entity.jdbc.SqlJdbcUtil.getValue(SqlJdbcUtil.java:701) ... 65 more
Workaround
- Identify the latest XML backup from the $JIRA_HOME/export directory
- Create a new user as per the Connecting JIRA to Oracle guide
- Install a new JIRA 7.0.0 instance and connect it to the new Oracle user
- Import the XML backup
- included in
-
CPU-227 JIRA 7.1.0-OD-05-006
- mentioned in
-
Page No Confluence page found with the given URL.
-
Page No Confluence page found with the given URL.
- was cloned as
-
JDEV-35600 Failed to load
https://getsupport.atlassian.com/browse/GHS-139721