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

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

問題

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)

原因

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.

ソリューション

  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.

 

最終更新日 2018 年 7 月 31 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.