UPDATE: Apache has released a fix for this problem in Tomcat version 9.0.94. Our testing confirms that this version successfully resolves the issue. We recommend upgrading to 9.0.94 for a safe and stable Tomcat environment.
A recent update to Apache Tomcat, version 9.0.93, introduces an issue that can cause JNDI connections to fail. This happens if your connection is not configured to enforce encryption and is configured with the default factory: org.apache.tomcat.jdbc.pool.DataSourceFactory.
JNDI connections might fail to establish, and you may see similar error messages related to this issue in the all.log file:
...
2024-08-15 09:48:33,553[ AppInit] INFO DB patches: Initializing ...
2024-08-15 09:48:33,566[ AppInit] INFO DB patches: using PostgreSQLDialect dialect
2024-08-15 09:48:33,616[ AppInit] ERROR com.cloveretl.commons.dblocker.DBLockException: Unable to lock system database.
2024-08-15 09:48:33,617[ AppInit] INFO Initializing bean persistenceServiceLocalProxy
...
2024-08-15 09:48:37,244[ AppInit] INFO Root WebApplicationContext initialized in 5045 ms
2024-08-15 09:48:37,246[ AppInit] ERROR Could not initialize CloverDX Server
java.lang.RuntimeException: com.cloveretl.commons.dblocker.DBLockException: Unable to lock system database.
at com.cloveretl.server.PostInitThread.init(Main:390) ~[cs.jar:?]
at com.cloveretl.server.PostInitThread.run(Main:155) ~[cs.jar:?]
Caused by: com.cloveretl.commons.dblocker.DBLockException: Unable to lock system database.
at com.cloveretl.commons.dblocker.DBLocker.lock(DBLocker.java:145) ~[cloveretl.commons-6.6.0.jar:?]
at com.cloveretl.server.dbschema.DbPatches.afterPropertiesSet(Main:83) ~[cs.jar:?]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.34.jar:5.3.34]
...
Caused by: org.postgresql.util.PSQLException: ERROR: relation "db_lock" does not exist
...
You can find more information about this issue here. Apache is aware of the problem and will be releasing a fix in version 9.094.
This issue will not affect you if you are using one of our pre-configured deployments that include Tomcat (e.g., AWS or Azure Marketplace offers, Docker images, Server bundles). These deployments use a different Tomcat version or have a modified configuration that avoids the issue.
If you are planning on manually upgrading to a newer version on Tomcat, we recommend upgrading to a lower version or waiting until Tomcat version 9.0.94 is released.
If you want to upgrade to version 9.0.93, ensure that you use encrypted JNDI as described in our documentation.
Comments 0