Errors on upgrade from 2.37 to 2.40?

Hi.all , I do upgrade from 2.37 to 2.40, got this error:

  • INFO 2023-07-18T17:56:53,320 Executing startup routine [7 of 8, runlevel 14]: SettingUpgrader (DefaultStartupRoutineExecutor.java [main])
  • INFO 2023-07-18T17:56:53,325 Executing startup routine [8 of 8, runlevel 15]: SchedulerStart (DefaultStartupRoutineExecutor.java [main])
  • ERROR 2023-07-18T17:56:53,348 java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id ‘org.hisp.dhis.scheduling.parameters.jackson.ContinuousAnalyticsJobParametersDeserializer$CustomJobParameters’ as a subtype of org.hisp.dhis.scheduling.JobParameters: no such class found
    at [Source: (String)“[“org.hisp.dhis.scheduling.parameters.jackson.ContinuousAnalyticsJobParametersDeserializer$CustomJobParameters”, {“skipTableTypes”: [“java.util.HashSet”, []], “fullUpdateHourOfDay”: 3}]”; line: 1, column: 114]
    at org.hisp.dhis.hibernate.jsonb.type.JsonBinaryType.convertJsonToObject(JsonBinaryType.java:283)
    at org.hisp.dhis.hibernate.jsonb.type.JsonBinaryType.nullSafeGet(JsonBinaryType.java:156)
    at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:119)
    at org.hibernate.type.AbstractType.hydrate(AbstractType.java:91)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3214)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1887)
    at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1811)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1784)
    at org.hibernate.loader.Loader.getRow(Loader.java:1624)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:748)
    at org.hibernate.loader.Loader.getRowsFromResultSet(Loader.java:1047)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:998)
    at org.hibernate.loader.Loader.doQuery(Loader.java:967)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357)
    at org.hibernate.loader.Loader.doList(Loader.java:2868)
    at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2712)
    at org.hibernate.loader.Loader.list(Loader.java:2674)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:218)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459)
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617)
    at org.hibernate.query.Query.getResultList(Query.java:165)
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)
    at org.hisp.dhis.hibernate.HibernateGenericStore.getList(HibernateGenericStore.java:255)
    at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAll(HibernateIdentifiableObjectStore.java:234)
    at org.hisp.dhis.scheduling.DefaultJobConfigurationService.getAllJobConfigurations(DefaultJobConfigurationService.java:122)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
    at com.sun.proxy.$Proxy265.getAllJobConfigurations(Unknown Source)
    at org.hisp.dhis.startup.SchedulerStart.execute(SchedulerStart.java:168)
    at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:102)
    at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:61)
    at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:62)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4766)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1024)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:825)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
    Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id ‘org.hisp.dhis.scheduling.parameters.jackson.ContinuousAnalyticsJobParametersDeserializer$CustomJobParameters’ as a subtype of org.hisp.dhis.scheduling.JobParameters: no such class found
    at [Source: (String)“[“org.hisp.dhis.scheduling.parameters.jackson.ContinuousAnalyticsJobParametersDeserializer$CustomJobParameters”, {“skipTableTypes”: [“java.util.HashSet”, []], “fullUpdateHourOfDay”: 3}]”; line: 1, column: 114]
    at com.fasterxml.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43)
    at com.fasterxml.jackson.databind.DeserializationContext.invalidTypeIdException(DeserializationContext.java:2078)
    at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownTypeId(DeserializationContext.java:1569)
    at com.fasterxml.jackson.databind.jsontype.impl.ClassNameIdResolver._typeFromId(ClassNameIdResolver.java:76)
    at com.fasterxml.jackson.databind.jsontype.impl.ClassNameIdResolver.typeFromId(ClassNameIdResolver.java:66)
    at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:159)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:97)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromObject(AsArrayTypeDeserializer.java:61)
    at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:263)
    at com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:74)
    at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
    at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2105)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1546)
    at org.hisp.dhis.hibernate.jsonb.type.JsonBinaryType.convertJsonToObject(JsonBinaryType.java:281)
    … 85 more
    (StartupListener.java [main])
    18-Jul-2023 17:56:53.359 严重 [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应 的容器日志文件
    18-Jul-2023 17:56:53.364 严重 [main] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[]启动失败
  • INFO 2023-07-18T17:56:53,372 De-registering jdbc driver: org.postgresql.Driver@33da7a49 (StartupListener.java [main])
    18-Jul-2023 17:56:54.588 警告 [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[ROOT]似乎启动了一个名为[Log4j2-TF-7-Scheduled-1]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[

maybe,you should modify some code in the module of dhis-support-db-migration,dhis-support-external.
in dhis-support-db-migration:


in dhis-support-external:

then,delete the data of the table of version,delete the data in flyway_schema_history where success is f.
at last,repackage,redeploy.
good luck.

Hi @linxd

Currently I am trying to upgrade from 2.36 to 2.39, and got the same error.
what I did : just removed all custom scheduled jobs on version 2.36 then started upgrade process. Then now I’ m facing other errors. So hopefully it may help you if you haven’t fixed this error yet.

Regards,

1 Like

Hi @doodoocoder

Thank you for your suggestions.

I don’t think this is a recommended approach. Please read the following [note](https://community.dhis2.org/t/flyway-error-in-2-33-3-snapshot-on-using-2-32-database-on-second-startup-the-server-started-fine-on-first-attempt/38772/3:

@linxd, I would recommend to test @Ulanbek’s suggestion please and see if it clears aways the scheduler issues?

Thanks!