Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-6429

4.0 upgrade may fail on Mysql with "Can't DROP 'cru_user'; check that column/key exists"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • High
    • 4.0.2
    • 4.0.0, 4.0.1
    • None

    Description

      Upgrading instance to 4.0 FishEye may fail with an error:

      2016-03-15 08:28:29,487 INFO  - Dropping cru_name for cru_perm_scheme
      2016-03-15 08:28:29,507 INFO  - Dropping cru_review_id for cru_review_participant
      2016-03-15 08:28:49,218 INFO  - Dropping cru_source_name for cru_revision
      2016-03-15 08:49:10,851 INFO  - Dropping cru_user_name for cru_user
      2016-03-15 08:49:11,060 INFO  - Dropping cru_builtin_group_name for cru_builtin_group
      2016-03-15 08:49:11,084 INFO  - Dropping cru_user for cru_comment_read_status
      2016-03-15 08:49:11,155 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 /opt/crucible-cert/fecru-4.0.0/sql/MYSQL/upgrade/upgrade_91.sql: Can't DROP 'cru_user'; check that column/key exists
      	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 /opt/crucible-cert/fecru-4.0.0/sql/MYSQL/upgrade/upgrade_91.sql: Can't DROP 'cru_user'; check that column/key exists
      	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 /opt/crucible-cert/fecru-4.0.0/sql/MYSQL/upgrade/upgrade_91.sql: Can't DROP 'cru_user'; check that column/key exists
      	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.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'cru_user'; 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.26-bin.jar:?]
      	at com.mysql.jdbc.Util.getInstance(Util.java:386) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4190) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4122) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1811) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1725) [mysql-connector-java-5.1.26-bin.jar:?]
      	at com.cenqua.crucible.hibernate.upgrade.Hibernate4UpgradeTask.dropConstraints(Hibernate4UpgradeTask.java:99) [fisheye.jar:?]
      	at com.cenqua.crucible.hibernate.upgrade.Hibernate4UpgradeTask.beforeUpgradeScript(Hibernate4UpgradeTask.java:58) [fisheye.jar:?]
      	at com.cenqua.crucible.hibernate.upgrade.UpgradeTaskManager$ChainedUpgradeTask.beforeUpgradeScript(UpgradeTaskManager.java:28) [fisheye.jar:?]
      	at com.cenqua.crucible.hibernate.DefaultDBControl.doUpgrade(DefaultDBControl.java:464) [fisheye.jar:?]
      	at com.cenqua.crucible.hibernate.DefaultDBControl.upgrade(DefaultDBControl.java:423) [fisheye.jar:?]
      	... 50 more
      

      Workaround

      As a FishEye db user may have an access to more than one FishEye database on single db server then we may try to limit an access of FishEye db user to FishEye db only.

      Attachments

        Issue Links

          Activity

            People

              czawadka@atlassian.com Cezary Zawadka
              czawadka@atlassian.com Cezary Zawadka
              Votes:
              5 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: