DHIS2-17581: Back-end service worker caching on bundled apps breaks app overrides
This is the latest stable release for version 41, and supersedes release 41.0.0.
These hotfixes are provided to make it easy for you to keep your system secure and reliable; provided you keep up to date with the latest patch versions.
I was running version 40 and I have been unsuccessful in upgrading the version to 41. I have tried running this both on a linux instance and both times it has failed. I canāt tell much from the logs but I can try again and see.
What would be causing the issue and how do I fix this?
Additionally, since I ran the update and failed, I reverted to version 40 and everything went alright and it deployed. However, since then (yesterday) I have been getting 502 Bad Gateway error and nothing on the log files when it goes down. The fix is to restart tomcat though it only stays up for a few hours and then comes down again.
I have an analytics table update running at 1am and there were errors on the analytics table generation the day after the failed update that there werenāt the day before the failed update.
@lillian1n2 sorry to hear about this issue, have you managed to fix this? Please feel free to start a new topic with the complete Catalina.out log (without sensitive/authentication info)
Yes I did, however, I now have a new problem. This consistently shows up un the logs and I noticed some users cannot login with username and password anymore
ERROR 2024-07-12T11:10:00,001 Exceptions thrown in scheduler loop (JobScheduler.java [pool-5-thread-1])
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: EntityManagerFactory is closed
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:467) ~[spring-orm-5.3.33.jar:5.3.33]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400) ~[spring-tx-5.3.33.jar:5.3.33]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) ~[spring-tx-5.3.33.jar:5.3.33]
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:595) ~[spring-tx-5.3.33.jar:5.3.33]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:382) ~[spring-tx-5.3.33.jar:5.3.33]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.33.jar:5.3.33]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.33.jar:5.3.33]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) ~[spring-aop-5.3.33.jar:5.3.33]
at jdk.proxy3/jdk.proxy3.$Proxy438.getDueJobConfigurations(Unknown Source) ~[?:?]
at org.hisp.dhis.scheduling.JobScheduler.run(JobScheduler.java:126) [dhis-service-core-2.41.0.1.jar:?]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.lang.IllegalStateException: EntityManagerFactory is closed
at org.hibernate.internal.SessionFactoryImpl.validateNotClosed(SessionFactoryImpl.java:547) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
at org.hibernate.internal.SessionFactoryImpl.createEntityManager(SessionFactoryImpl.java:636) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
at org.hibernate.internal.SessionFactoryImpl.createEntityManager(SessionFactoryImpl.java:158) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createNativeEntityManager(AbstractEntityManagerFactoryBean.java:585) ~[spring-orm-5.3.33.jar:5.3.33]
at jdk.internal.reflect.GeneratedMethodAccessor170.invoke(Unknown Source) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod(AbstractEntityManagerFactoryBean.java:487) ~[spring-orm-5.3.33.jar:5.3.33]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:734) ~[spring-orm-5.3.33.jar:5.3.33]
at jdk.proxy3/jdk.proxy3.$Proxy148.createNativeEntityManager(Unknown Source) ~[?:?]
at org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:485) ~[spring-orm-5.3.33.jar:5.3.33]
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:410) ~[spring-orm-5.3.33.jar:5.3.33]
<6>Illegal access: this web application instance has been stopped already. Could not load [org.hibernate.internal.SessionFactoryImpl]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
<6>java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.hibernate.internal.SessionFactoryImpl]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
<6> at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1385)
<6> at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1373)
<6> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1226)
<6> at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
<6> at org.apache.logging.log4j.core.impl.ThrowableProxyHelper.loadClass(ThrowableProxyHelper.java:204)
<6> at org.apache.logging.log4j.core.impl.ThrowableProxyHelper.toExtendedStackTrace(ThrowableProxyHelper.java:112)
<6> at org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:144)
<6> at org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:118)
<6> at org.apache.logging.log4j.core.impl.ThrowableProxy.<init>(ThrowableProxy.java:96)
<6> at org.apache.logging.log4j.core.impl.Log4jLogEvent.getThrownProxy(Log4jLogEvent.java:818)
<6> at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:63)
<6> at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:44)
<6> at org.apache.logging.log4j.core.layout.PatternLayout$PatternFormatterPatternSerializer.toSerializable(PatternLayout.java:397)
<6> at org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:252)
<6> at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:238)
<6> at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:58)
<6> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:227)
<6> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:220)
<6> at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:211)
<6> at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:160)
<6> at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:133)
<6> at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:124)
<6> at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:88)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:705)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:663)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:639)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.logParent(LoggerConfig.java:696)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:665)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:639)
<6> at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:575)
<6> at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:92)
<6> at org.apache.logging.log4j.core.Logger.log(Logger.java:169)
<6> at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2906)
<6> at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2859)
<6> at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2841)
<6> at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2620)
<6> at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:2567)
<6> at org.apache.logging.slf4j.Log4jLogger.error(Log4jLogger.java:313)
<6> at org.hisp.dhis.scheduling.JobScheduler.run(JobScheduler.java:135)
<6> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
<6> at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
<6> at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
<6> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
<6> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
<6> at java.base/java.lang.Thread.run(Thread.java:840)
<6>
Also, what happens with usernames that I could previously create with āFirstname Lastnameā? As it seems I can only create them as āFirstname_Lastnameā now.