Confluence server stopping running when server was migrated between VMs
Asked by Joel Brotman:

We had our Confluence and Jira Server running on Windows. We migrated our VM between servers. Now Jira runs, but Confluence does not. This VM migration would result in a CPU ID change. Would this cause a licensing issue or some other reason why Confluence won't run.

Log file entries include:

2021-01-26 00:49:14,403 WARN \[C3P0PooledConnectionPoolManager\[identityToken-\>1hge32vafgcfr9n1hi52b1\|52d4675\]-HelperThread-#2\] \[mchange.v2.resourcepool.BasicResourcePool\] log [com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@5c6129a0](mailto:com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@5c6129a0) -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:

org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" \[50000-196\]

at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)

at org.h2.message.DbException.get(DbException.java:168)

at org.h2.message.DbException.convert(DbException.java:295)

at org.h2.engine.Database.openDatabase(Database.java:307)

at org.h2.engine.Database.\<init\>(Database.java:270)

at org.h2.engine.Engine.openSession(Engine.java:64)

at org.h2.engine.Engine.openSession(Engine.java:176)

at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)

at org.h2.engine.Engine.createSession(Engine.java:137)

at org.h2.server.TcpServerThread.run(TcpServerThread.java:148)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.NullPointerException

at org.h2.engine.SessionRemote.done(SessionRemote.java:629)

at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:144)

at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:453)

at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:334)

at org.h2.jdbc.JdbcConnection.\<init\>(JdbcConnection.java:116)

at org.h2.jdbc.JdbcConnection.\<init\>(JdbcConnection.java:100)

at org.h2.Driver.connect(Driver.java:69)

at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)

at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)

at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)

at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)

at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)

at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)

at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)

at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

2021-01-26 00:49:14,403 WARN \[C3P0PooledConnectionPoolManager\[identityToken-\>1hge32vafgcfr9n1hi52b1\|52d4675\]-HelperThread-#2\] \[mchange.v2.resourcepool.BasicResourcePool\] log Having failed to acquire a resource, [com.mchange.v2.resourcepool.BasicResourcePool@4508c9db](mailto:com.mchange.v2.resourcepool.BasicResourcePool@4508c9db) is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.

2021-01-26 00:59:56,150 INFO \[Catalina-utility-2\] \[com.atlassian.confluence.lifecycle\] contextInitialized Starting Confluence 6.13.10 \[build 7901 based on commit hash abf7b35644d5a5d1d7e4b0969a83e8eb2b569fb5\] - synchrony version 2.1.0-release-confluence_6.13-84328589

2021-01-26 01:00:15,425 INFO \[Catalina-utility-2\] \[springframework.web.context.ContextLoader\] initWebApplicationContext Root WebApplicationContext: initialization started

2021-01-26 01:00:28,675 INFO \[Catalina-utility-2\] \[com.atlassian.confluence.lifecycle\] \<init\> Loading EhCache cache manager

2021-01-26 01:01:40,361 INFO \[Catalina-utility-2\] \[springframework.web.context.ContextLoader\] initWebApplicationContext Root WebApplicationContext: initialization completed in 84936 ms


Answers:
author: Nic Brough -Adaptavist-
body: There's a bit of an essay on what database pooling is, but the short version of it is that a connection can only handle a certain number of channels talking to the database at a time, and Confluence is trying to go over that and it is failing.

You are using the internal embedded database, h2, which is not supported and only suitable for demo or short-lived dev/test systems.

I don't know how to fix a pooling problem with h2, I've always shrugged, reverted to the previous system, and then rigged up a supported database and re-migrated/upgraded. I think this is probably what you need to do - go find the last backup, and rebuild a system on a supported database from it.


Tags: confluence-server

server