Version 2.34.3 to 2.35.1

I have DHIS2.34.3 and an error for upgrade into 2.35.1

  • ERROR 2021-02-02T17:37:02,623 Context initialization failed (ContextLoader.java [main])
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘webMvcConfig’: Unsatisfied dependency expressed through field ‘userSettingService’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.user.UserSettingService’ defined in URL [jar:file:/home/dhis/tomcat-dhis/webapps/ROOT/WEB-INF/lib/dhis-service-core-2.35.1.jar!/org/hisp/dhis/user/DefaultUserSettingService.class]: Unsatisfied dependency expressed through constructor parameter 3; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.user.UserSettingStore’ defined in URL [jar:file:/home/dhis/tomcat-dhis/webapps/ROOT/WEB-INF/lib/dhis-service-core-2.35.1.jar!/org/hisp/dhis/user/hibernate/HibernateUserSettingStore.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in class path resource [org/hisp/dhis/db/migration/config/FlywayConfig.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Validate failed:
    Detected resolved migration not applied to database: 2.35.4. To ignore this migration, set ignoreIgnoredMigrations to true. To allow executing this migration, set outOfOrder to true.
    Detected failed migration to version 2.35.26 (Add createdbyuserInfo lastupdatedbyuserinfo to ProgramStageInstance). Please remove any half-completed changes then run repair to fix the schema history.

     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401) ~[spring-web-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292) [spring-web-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) [spring-web-5.2.9.RELEASE.jar:5.2.9.RELEASE]
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4683) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
     at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
     at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat9-util-9.0.31.jar:9.0.31]
     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118) [?:?]
     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
     at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat9-util-9.0.31.jar:9.0.31]
     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) [?:?]
     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at org.apache.catalina.startup.Catalina.start(Catalina.java:633) [tomcat9-catalina-9.0.31.jar:9.0.31]
     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
     at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343) [bootstrap.jar:9.0.31]
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) [bootstrap.jar:9.0.31]
    

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.user.UserSettingService’ defined in URL [jar:file:/home/dhis/tomcat-dhis/webapps/ROOT/WEB-INF/lib/dhis-service-core-2.35.1.jar!/org/hisp/dhis/user/DefaultUserSettingService.class]: Unsatisfied dependency expressed through constructor parameter 3; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.user.UserSettingStore’ defined in URL [jar:file:/home/dhis/tomcat-dhis/webapps/ROOT/WEB-INF/lib/dhis-service-core-2.35.1.jar!/org/hisp/dhis/user/hibernate/HibernateUserSettingStore.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in class path resource [org/hisp/dhis/db/migration/config/FlywayConfig.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Validate failed:
Detected resolved migration not applied to database: 2.35.4. To ignore this migration, set ignoreIgnoredMigrations to true. To allow executing this migration, set outOfOrder to true.
Detected failed migration to version 2.35.26 (Add createdbyuserInfo lastupdatedbyuserinfo to ProgramStageInstance). Please remove any half-completed changes then run repair to fix the schema history.

    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:797) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:227) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1203) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    ... 56 more

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.user.UserSettingStore’ defined in URL [jar:file:/home/dhis/tomcat-dhis/webapps/ROOT/WEB-INF/lib/dhis-service-core-2.35.1.jar!/org/hisp/dhis/user/hibernate/HibernateUserSettingStore.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in class path resource [org/hisp/dhis/db/migration/config/FlywayConfig.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Validate failed:
Detected resolved migration not applied to database: 2.35.4. To ignore this migration, set ignoreIgnoredMigrations to true. To allow executing this migration, set outOfOrder to true.
Detected failed migration to version 2.35.26 (Add createdbyuserInfo lastupdatedbyuserinfo to ProgramStageInstance). Please remove any half-completed changes then run repair to fix the schema history.

Any idea?

Thanks
taufiq

Hi @taufiqhs
This is a bug in 2.35.1. The fix will be available in 2.35.2 which will be released in a week or two.

There is a workaround though, but that involves dropping 2 columns from programstageinstance table. Wouldnt recommend it for production databases. If its critical for you to startup straight away (without waiting for 2.35.2 release), please contact me on slack and we can take it from there.

Thanks
Ameen

Hope it’s not too late but the solution to this problem as Oslo fix this issue, delete all version 2.5xx in the flyway_history table and drop every column flyway has added to the tables as indicated in the logs. This worked for me.