Upgrade to 4.0+ using MySQL Fails Because it Can't DROP 'idx_commitnotif_rep'

Still need help?

The Atlassian Community is here for you.

Ask the community

Problem

Upgrading Fisheye/Crucible to 4.0+ fails and the following error appears in atlassian-fisheye.log:

2016-03-18 11:24:08,197 ERROR - The Web context could not be started
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbControlFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.cenqua.crucible.hibernate.DBControlFactoryImpl]: Constructor threw exception; nested exception is com.cenqua.crucible.hibernate.CruDBException: Problem upgrading with script /path/to/fecru-4.0.x/sql/MYSQL/upgrade/upgrade_91.sql: SQL script error on line 1: "drop index idx_commitnotif_rep on cru_commit_notification;"
(Can't DROP 'idx_commitnotif_rep'; check that column/key exists), please contact http://www.atlassian.com/support/
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:278) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1115) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:706) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762) [spring-context-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) [spring-context-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424) [jetty-servlet-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249) [jetty-servlet-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252) [jetty-webapp-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) [jetty-webapp-8.1.10.v20130312.jar:8.1.10.v20130312]
at com.cenqua.fisheye.web.jetty.FishEyeWebApplicationContext.doStart(FishEyeWebApplicationContext.java:32) [fisheye.jar:?]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.server.Server.doStart(Server.java:280) [jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) [jetty-util-8.1.10.v20130312.jar:8.1.10.v20130312]
at com.cenqua.fisheye.web.WebServer.start(WebServer.java:335) [fisheye.jar:?]
at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:229) [fisheye.jar:?]
at com.cenqua.fisheye.ctl.Run.main(Run.java:56) [fisheye.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497) [?:1.8.0_66]
at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:101) [fisheyeboot.jar:?]
at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:44) [fisheyeboot.jar:?]
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.cenqua.crucible.hibernate.DBControlFactoryImpl]: Constructor threw exception; nested exception is com.cenqua.crucible.hibernate.CruDBException: Problem upgrading with script /path/to/fecru-4.0.x/sql/MYSQL/upgrade/upgrade_91.sql: SQL script error on line 1: "drop index idx_commitnotif_rep on cru_commit_notification;"
(Can't DROP 'idx_commitnotif_rep'; check that column/key exists), please contact http://www.atlassian.com/support/
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:125) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:270) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
... 40 more
Caused by: com.cenqua.crucible.hibernate.CruDBException: Problem upgrading with script /path/to/fecru-4.0.x/sql/MYSQL/upgrade/upgrade_91.sql: SQL script error on line 1: "drop index idx_commitnotif_rep on cru_commit_notification;"
(Can't DROP 'idx_commitnotif_rep'; check that column/key exists), please contact http://www.atlassian.com/support/
at com.cenqua.crucible.hibernate.DefaultDBControl.upgrade(DefaultDBControl.java:432) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.start(DefaultDBControl.java:260) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.start(DefaultDBControl.java:242) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DBControlFactoryImpl.<init>(DBControlFactoryImpl.java:40) [fisheye.jar:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [?:1.8.0_66]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:1.8.0_66]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:1.8.0_66]
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [?:1.8.0_66]
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) [spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
... 42 more
Caused by: com.cenqua.crucible.hibernate.CruDBException: SQL script error on line 1: "drop index idx_commitnotif_rep on cru_commit_notification;"
(Can't DROP 'idx_commitnotif_rep'; check that column/key exists), please contact http://www.atlassian.com/support/
at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:576) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:507) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.doUpgrade(DefaultDBControl.java:465) [fisheye.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.upgrade(DefaultDBControl.java:423) [fisheye.jar:?]
... 50 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'idx_commitnotif_rep'; check that column/key exists
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [?:1.8.0_66]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:1.8.0_66]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:1.8.0_66]
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [?:1.8.0_66]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.Util.getInstance(Util.java:386) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2819) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1842) [mysql-connector-java-5.1.28.jar:?]
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764) [mysql-connector-java-5.1.28.jar:?]
at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:548) [fisheye.jar:?]
... 53 more
2016-03-18 11:24:08,282 INFO - Shutdown requested
Exception in thread "Thread-1" org.springframework.context.ApplicationContextException: Application Context not initialised.
at com.cenqua.fisheye.config.SpringContext.getApplicationContext(SpringContext.java:47)
at com.cenqua.fisheye.config.SpringContext.getComponentByClass(SpringContext.java:86)
at com.cenqua.fisheye.config.RootConfig.getRepositoryManager(RootConfig.java:594)
at com.cenqua.fisheye.config.RootConfig.shutDownRepositories(RootConfig.java:1422)
at com.cenqua.fisheye.ctl.ShutdownService.stopImpl(ShutdownService.java:281)
at com.cenqua.fisheye.ctl.ShutdownService.access$000(ShutdownService.java:35)
at com.cenqua.fisheye.ctl.ShutdownService$1.run(ShutdownService.java:59)

Cause

Object 'idx_commitnotif_rep' does not exist for whatever reason in the database. Scripts from previous Fisheye versions do not delete it, so the reason why it doesn't exist is unknown. As it doesn't exist, Fisheye upgrade script fails to delete it.

Resolution

  1. Restore idx_user_name and then idx_commitnotif_rep which has been removed by first line in upgrade_91.sql. Please run:

    create index idx_user_name on cru_user (cru_user_name);
    create index idx_commitnotif_rep on cru_commit_notification (cru_repository_name);
  2. After the statements have been executed successfully please start Fisheye/Crucible to trigger 4.0+ upgrade.

 

Last modified on Jul 31, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.