Post upgrade checks failed
Problem
When upgrading to Fisheye/Crucible 4.2.1, the following exception is reported in the atlassian-fisheye-<date>.log file:
2016-11-29 20:57:21,818 INFO [main ] BumpDbVersionUpgradeTask-bumpVersionNumberUp - Database upgrade from version 102 is successful
2016-11-29 20:57:21,871 ERROR [main ] DefaultUpgradeCheckManager-runPostUpgradeChecks - java.lang.IllegalStateException: Post upgrade checks failed
at com.cenqua.crucible.hibernate.upgrade.checks.DefaultUpgradeCheckManager.runPostUpgradeChecks(DefaultUpgradeCheckManager.java:20)
at com.cenqua.crucible.hibernate.DefaultDBControl.upgrade(DefaultDBControl.java:442)
at com.cenqua.crucible.hibernate.DefaultDBControl.start(DefaultDBControl.java:268)
at com.cenqua.crucible.hibernate.DefaultDBControl.start(DefaultDBControl.java:250)
at com.cenqua.crucible.hibernate.DBControlFactoryImpl.<init>(DBControlFactoryImpl.java:67)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:125)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:270)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1115)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:706)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
at com.cenqua.fisheye.web.jetty.FishEyeWebApplicationContext.doStart(FishEyeWebApplicationContext.java:32)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
at org.eclipse.jetty.server.Server.doStart(Server.java:280)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at com.cenqua.fisheye.web.WebServer.start(WebServer.java:332)
at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:236)
at com.cenqua.fisheye.ctl.Run.main(Run.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:101)
at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:44)
Suppressed: java.lang.IllegalStateException: config.xml/security/admins/system-admins/group elements contain unnormalised group names: [groupName]
at com.cenqua.crucible.hibernate.upgrade.checks.AllGroupNamesInConfigXmlAreNormalisedPostUpgradeCheck.execute(AllGroupNamesInConfigXmlAreNormalisedPostUpgradeCheck.java:41)
at com.cenqua.crucible.hibernate.upgrade.checks.DefaultUpgradeCheckManager.runPostUpgradeChecks(DefaultUpgradeCheckManager.java:24)
... 51 more
Diagnosis
Environment
- Upgrading from Fisheye/Crucible 4.1.2
Diagnostic Steps
Check <FISHEYE_INST>/config.xml for the above reported group name groupName, for example:
<system-admins><group>groupName</group></system-admins>
Cause
As per the group normalization guide, all group names in Fisheye/Crucible should be converted to lowercase after an upgrade to 4.2.1. Though this has not been triggered automatically for groupName. It should have been converted to groupname as part of the upgrade task to normalize group names.
Workaround
- Shut down Fisheye/Crucible
Manually rename the group from
<system-admins><group>groupName</group></system-admins>
to
<system-admins><group>groupname</group></system-admins>
Restart Fisheye/Crucible