brettwooldridge / HikariCP

光 HikariCP・A solid, high-performance, JDBC connection pool at last.
Apache License 2.0
19.96k stars 2.93k forks source link

java.lang.IllegalStateException: Timer already cancelled. #1715

Closed mullo1981 closed 2 years ago

mullo1981 commented 3 years ago

Environment: HikariCP version: 3.4.5 OpenJDK version : 1.8.0_271 Database : Oracle 19c Driver version : ojdbc8 18.3.0.0 after I upgraded the oracle driver from ojdbc7 12.2.0.1 to ojdbc8 18.3.0.0 I got a error. I tried different ojdbc8 versions but doesn't work.

Any help would be appreciated.

Here is the some error details:

22:08:17.393 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - db_owner - configuration: 22:08:17.394 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false 22:08:17.394 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................false 22:08:17.394 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none 22:08:17.394 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql..............."select 1 from dual" 22:08:17.394 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery............."select 1 from dual" 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............10000 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=} 22:08:17.395 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."oracle.jdbc.driver.OracleDriver" 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - exceptionOverrideClassName......none 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{} 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................60000 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1 22:08:17.396 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxxxx.com)(PORT=1721))(CONNECT_DATA=(SERVICE_NAME=xxxxxx.com))) 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................5 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none 22:08:17.397 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none 22:08:17.398 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................1 22:08:17.398 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - password........................ 22:08:17.398 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"risk_owner" 22:08:17.398 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false 22:08:17.398 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................true 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - username........................"DB_OWNER" 22:08:17.399 [Test worker] DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000 22:08:17.400 [Test worker] INFO com.zaxxer.hikari.HikariDataSource - db_owner - Starting... 22:08:17.400 [Test worker] WARN c.z.hikari.util.DriverDataSource - Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation. 22:08:17.400 [Test worker] DEBUG c.z.hikari.util.DriverDataSource - Driver class oracle.jdbc.driver.OracleDriver found in Thread context class loader sun.misc.Launcher$AppClassLoader@6d06d69c 22:08:17.402 [Test worker] DEBUG com.zaxxer.hikari.pool.PoolBase - risk_owner - Failed to create/setup connection: Timer already cancelled. 22:08:17.403 [Test worker] DEBUG com.zaxxer.hikari.pool.HikariPool - risk_owner - Cannot acquire connection from data source java.lang.IllegalStateException: Timer already cancelled. at java.util.Timer.sched(Timer.java:397) at java.util.Timer.schedule(Timer.java:193) at oracle.net.nt.TimeoutInterruptHandler.scheduleInterrupt(TimeoutInterruptHandler.java:80) at oracle.net.nt.TimeoutInterruptHandler.scheduleInterrupt(TimeoutInterruptHandler.java:93) at oracle.net.nt.TimeoutSocketChannel.scheduleInterrupt(TimeoutSocketChannel.java:239) at oracle.net.nt.TimeoutSocketChannel.connect(TimeoutSocketChannel.java:106) at oracle.net.nt.TimeoutSocketChannel.(TimeoutSocketChannel.java:86) at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:188) at oracle.net.nt.ConnOption.connect(ConnOption.java:172) at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:508) at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:521) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:660) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:287) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1481) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:540) at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:782) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:704) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:81) at com.db.xxxx.store.core.jdbc.BuildPool.buildPool(BuildPool.scala:83) at com.db.xxxx.store.core.jdbc.BuildPool.buildPool$(BuildPool.scala:17) at com.db.xxxx.store.core.jdbc.BuildPool$.buildPool(BuildPool.scala:97) at com.db.xxxx.store.core.jdbc.PoolFactory.buildPool(PoolFactory.java:28) at com.db.rpl.TestDataSources.(TestDataSources.java:12) at com.db.rpl.da.mrc.MrcDataWriterIT.setupBefore(MrcDataWriterIT.java:35) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118) at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.lang.Thread.run(Thread.java:748) 22:08:18.405 [Test worker] ERROR com.zaxxer.hikari.pool.HikariPool -db_owner - Exception during pool initialization. java.lang.IllegalStateException: Timer already cancelled. at java.util.Timer.sched(Timer.java:397) at java.util.Timer.schedule(Timer.java:193) at oracle.net.nt.TimeoutInterruptHandler.scheduleInterrupt(TimeoutInterruptHandler.java:80) at oracle.net.nt.TimeoutInterruptHandler.scheduleInterrupt(TimeoutInterruptHandler.java:93) at oracle.net.nt.TimeoutSocketChannel.scheduleInterrupt(TimeoutSocketChannel.java:239) at oracle.net.nt.TimeoutSocketChannel.connect(TimeoutSocketChannel.java:106) at oracle.net.nt.TimeoutSocketChannel.(TimeoutSocketChannel.java:86) at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:188) at oracle.net.nt.ConnOption.connect(ConnOption.java:172) at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:508) at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:521) at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:660) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:287) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1481) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:540) at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:782) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:704) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:81) at com.db.xxxx.store.core.jdbc.BuildPool.buildPool(BuildPool.scala:83) at com.db.xxxx.store.core.jdbc.BuildPool.buildPool$(BuildPool.scala:17) at com.db.xxxx.store.core.jdbc.BuildPool$.buildPool(BuildPool.scala:97) at com.db.xxxx.store.core.jdbc.PoolFactory.buildPool(PoolFactory.java:28) at com.db.xxxx.TestDataSources.(TestDataSources.java:12) at com.db.xxxx.da.mrc.MrcDataWriterIT.setupBefore(MrcDataWriterIT.java:35) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118) at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.lang.Thread.run(Thread.java:748)

nilechou commented 3 years ago

@mullo1981 Did you find the solution for this issue? We are struggling with the same.

jacob2221 commented 2 years ago

Any solution to this?

lfbayer commented 2 years ago

This would appear to be an issue with the oracle driver when you unregister and reregister the driver.

I see a similar issue in a different project here: https://github.com/opentracing-contrib/java-jdbc/issues/73

I'm closing this issue as it does not appear to be caused by HikariCP.