Skip to content

Split / Parallel Read in Oracle Connector #41036

Split / Parallel Read in Oracle Connector

Split / Parallel Read in Oracle Connector #41036

GitHub Actions / Test Report failed Aug 25, 2024 in 0s

436 tests run, 95 skipped, 1 failed.

Annotations

Check failure on line 1 in io/trino/plugin/oracle/TestOracleQueryFailureRecoveryTest

See this annotation in the file changed.

@github-actions github-actions / Test Report

TestOracleQueryFailureRecoveryTest.testExplainAnalyze

UCP-29: Failed to get a connection
Raw output
io.trino.testing.QueryFailedException: UCP-29: Failed to get a connection
	at io.trino.testing.AbstractTestingTrinoClient.execute(AbstractTestingTrinoClient.java:134)
	at io.trino.testing.DistributedQueryRunner.executeInternal(DistributedQueryRunner.java:558)
	at io.trino.testing.DistributedQueryRunner.executeWithPlan(DistributedQueryRunner.java:547)
	at io.trino.testing.BaseFailureRecoveryTest$FailureRecoveryAssert.execute(BaseFailureRecoveryTest.java:558)
	at io.trino.testing.BaseFailureRecoveryTest$FailureRecoveryAssert.executeExpected(BaseFailureRecoveryTest.java:518)
	at io.trino.testing.BaseFailureRecoveryTest$FailureRecoveryAssert.lambda$failsWithoutRetries$10(BaseFailureRecoveryTest.java:731)
	at io.trino.testing.BaseFailureRecoveryTest$FailureRecoveryAssert.getFailureStageId(BaseFailureRecoveryTest.java:755)
	at io.trino.testing.BaseFailureRecoveryTest$FailureRecoveryAssert.failsWithoutRetries(BaseFailureRecoveryTest.java:731)
	at io.trino.testing.BaseFailureRecoveryTest.testSelect(BaseFailureRecoveryTest.java:178)
	at io.trino.testing.BaseFailureRecoveryTest.testSelect(BaseFailureRecoveryTest.java:134)
	at io.trino.testing.BaseFailureRecoveryTest.testSelect(BaseFailureRecoveryTest.java:129)
	at io.trino.testing.BaseFailureRecoveryTest.testExplainAnalyze(BaseFailureRecoveryTest.java:277)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.tryRemoveAndExec(ForkJoinPool.java:1532)
	at java.base/java.util.concurrent.ForkJoinPool.helpJoin(ForkJoinPool.java:2267)
	at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:495)
	at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:662)
	at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1489)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2071)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2033)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
	Suppressed: java.lang.Exception: SQL: EXPLAIN ANALYZE SELECT orderStatus, count(*) FROM orders GROUP BY orderStatus
		at io.trino.testing.DistributedQueryRunner.executeInternal(DistributedQueryRunner.java:565)
		... 23 more
Caused by: io.trino.spi.TrinoException: UCP-29: Failed to get a connection
	at io.trino.plugin.jdbc.BaseJdbcClient.getTableHandle(BaseJdbcClient.java:248)
	at io.trino.plugin.jdbc.ForwardingJdbcClient.getTableHandle(ForwardingJdbcClient.java:90)
	at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.lambda$getTableHandle$3(StatisticsAwareJdbcClient.java:111)
	at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:34)
	at io.trino.plugin.jdbc.jmx.StatisticsAwareJdbcClient.getTableHandle(StatisticsAwareJdbcClient.java:111)
	at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getTableHandle$5(CachingJdbcClient.java:370)
	at io.trino.cache.EmptyCache.get(EmptyCache.java:94)
	at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:793)
	at io.trino.plugin.jdbc.CachingJdbcClient.getTableHandle(CachingJdbcClient.java:370)
	at io.trino.plugin.jdbc.CachingJdbcClient.lambda$getTableHandle$5(CachingJdbcClient.java:370)
	at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4903)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3574)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2316)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2189)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)
	at com.google.common.cache.LocalCache.get(LocalCache.java:4017)
	at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4898)
	at io.trino.cache.EvictableCache.get(EvictableCache.java:118)
	at io.trino.plugin.jdbc.CachingJdbcClient.get(CachingJdbcClient.java:793)
	at io.trino.plugin.jdbc.CachingJdbcClient.getTableHandle(CachingJdbcClient.java:370)
	at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableHandle(DefaultJdbcMetadata.java:165)
	at io.trino.plugin.jdbc.DefaultJdbcMetadata.getTableHandle(DefaultJdbcMetadata.java:120)
	at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.getTableHandle(ClassLoaderSafeConnectorMetadata.java:1268)
	at io.trino.tracing.TracingConnectorMetadata.getTableHandle(TracingConnectorMetadata.java:141)
	at io.trino.metadata.MetadataManager.lambda$getTableHandle$5(MetadataManager.java:287)
	at java.base/java.util.Optional.flatMap(Optional.java:289)
	at io.trino.metadata.MetadataManager.getTableHandle(MetadataManager.java:278)
	at io.trino.metadata.MetadataManager.getRedirectionAwareTableHandle(MetadataManager.java:1940)
	at io.trino.metadata.MetadataManager.getRedirectionAwareTableHandle(MetadataManager.java:1932)
	at io.trino.tracing.TracingMetadata.getRedirectionAwareTableHandle(TracingMetadata.java:1494)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.getTableHandle(StatementAnalyzer.java:5842)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:2291)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitTable(StatementAnalyzer.java:520)
	at io.trino.sql.tree.Table.accept(Table.java:60)
	at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:539)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.analyzeFrom(StatementAnalyzer.java:4891)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:3091)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuerySpecification(StatementAnalyzer.java:520)
	at io.trino.sql.tree.QuerySpecification.accept(QuerySpecification.java:155)
	at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:539)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:547)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:1562)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitQuery(StatementAnalyzer.java:520)
	at io.trino.sql.tree.Query.accept(Query.java:118)
	at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:539)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitExplainAnalyze(StatementAnalyzer.java:1541)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.visitExplainAnalyze(StatementAnalyzer.java:520)
	at io.trino.sql.tree.ExplainAnalyze.accept(ExplainAnalyze.java:61)
	at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
	at io.trino.sql.analyzer.StatementAnalyzer$Visitor.process(StatementAnalyzer.java:539)
	at io.trino.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:499)
	at io.trino.sql.analyzer.StatementAnalyzer.analyze(StatementAnalyzer.java:488)
	at io.trino.sql.analyzer.Analyzer.analyze(Analyzer.java:98)
	at io.trino.sql.analyzer.Analyzer.analyze(Analyzer.java:87)
	at io.trino.execution.SqlQueryExecution.analyze(SqlQueryExecution.java:285)
	at io.trino.execution.SqlQueryExecution.<init>(SqlQueryExecution.java:218)
	at io.trino.execution.SqlQueryExecution$SqlQueryExecutionFactory.createQueryExecution(SqlQueryExecution.java:884)
	at io.trino.dispatcher.LocalDispatchQueryFactory.lambda$createDispatchQuery$0(LocalDispatchQueryFactory.java:153)
	at io.trino.$gen.Trino_testversion____20240825_092115_426.call(Unknown Source)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:76)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.sql.SQLException: UCP-29: Failed to get a connection
	at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:399)
	at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:163)
	at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1948)
	at oracle.ucp.jdbc.PoolDataSourceImpl$3.build(PoolDataSourceImpl.java:4256)
	at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1865)
	at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1822)
	at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1808)
	at io.opentelemetry.instrumentation.jdbc.datasource.OpenTelemetryDataSource.wrapCall(OpenTelemetryDataSource.java:163)
	at io.opentelemetry.instrumentation.jdbc.datasource.OpenTelemetryDataSource.getConnection(OpenTelemetryDataSource.java:94)
	at io.trino.plugin.oracle.OraclePoolConnectionFactory.openConnection(OraclePoolConnectionFactory.java:87)
	at io.trino.plugin.jdbc.jmx.StatisticsAwareConnectionFactory.lambda$openConnection$0(StatisticsAwareConnectionFactory.java:45)
	at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:34)
	at io.trino.plugin.jdbc.jmx.StatisticsAwareConnectionFactory.openConnection(StatisticsAwareConnectionFactory.java:45)
	at io.trino.plugin.jdbc.RetryingConnectionFactory.lambda$openConnection$2(RetryingConnectionFactory.java:67)
	at dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)
	at dev.failsafe.Functions.lambda$get$0(Functions.java:46)
	at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
	at dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)
	at dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
	at dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)
	at io.trino.plugin.jdbc.RetryingConnectionFactory.openConnection(RetryingConnectionFactory.java:67)
	at io.trino.plugin.jdbc.LazyConnectionFactory.lambda$openConnection$0(LazyConnectionFactory.java:44)
	at io.trino.plugin.jdbc.LazyConnectionFactory$LazyConnection.delegate(LazyConnectionFactory.java:75)
	at io.trino.plugin.jdbc.ForwardingConnection.getMetaData(ForwardingConnection.java:117)
	at io.trino.plugin.jdbc.ForwardingConnection.getMetaData(ForwardingConnection.java:117)
	at io.trino.plugin.jdbc.BaseJdbcClient.getTables(BaseJdbcClient.java:1415)
	at io.trino.plugin.jdbc.BaseJdbcClient.getTableHandle(BaseJdbcClient.java:233)
	... 67 more
	Suppressed: java.sql.SQLException: UCP-29: Failed to get a connection
		at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:399)
		at oracle.ucp.util.UCPErrorHandler.throwSQLException(UCPErrorHandler.java:163)
		at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1948)
		at oracle.ucp.jdbc.PoolDataSourceImpl$3.build(PoolDataSourceImpl.java:4256)
		at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1865)
		at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1822)
		at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1808)
		at io.opentelemetry.instrumentation.jdbc.datasource.OpenTelemetryDataSource.wrapCall(OpenTelemetryDataSource.java:163)
		at io.opentelemetry.instrumentation.jdbc.datasource.OpenTelemetryDataSource.getConnection(OpenTelemetryDataSource.java:94)
		at io.trino.plugin.oracle.OraclePoolConnectionFactory.openConnection(OraclePoolConnectionFactory.java:87)
		at io.trino.plugin.jdbc.jmx.StatisticsAwareConnectionFactory.lambda$openConnection$0(StatisticsAwareConnectionFactory.java:45)
		at io.trino.plugin.jdbc.jmx.JdbcApiStats.wrap(JdbcApiStats.java:34)
		at io.trino.plugin.jdbc.jmx.StatisticsAwareConnectionFactory.openConnection(StatisticsAwareConnectionFactory.java:45)
		at io.trino.plugin.jdbc.RetryingConnectionFactory.lambda$openConnection$2(RetryingConnectionFactory.java:67)
		at dev.failsafe.Functions.lambda$toCtxSupplier$11(Functions.java:243)
		at dev.failsafe.Functions.lambda$get$0(Functions.java:46)
		at dev.failsafe.internal.RetryPolicyExecutor.lambda$apply$0(RetryPolicyExecutor.java:74)
		at dev.failsafe.SyncExecutionImpl.executeSync(SyncExecutionImpl.java:187)
		at dev.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:376)
		at dev.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:112)
		at io.trino.plugin.jdbc.RetryingConnectionFactory.openConnection(RetryingConnectionFactory.java:67)
		at io.trino.plugin.jdbc.LazyConnectionFactory.lambda$openConnection$0(LazyConnectionFactory.java:44)
		at io.trino.plugin.jdbc.LazyConnectionFactory$LazyConnection.delegate(LazyConnectionFactory.java:75)
		at io.trino.plugin.jdbc.ForwardingConnection.isClosed(ForwardingConnection.java:110)
		at io.trino.plugin.jdbc.ReusableConnectionFactory$CachedConnection.close(ReusableConnectionFactory.java:179)
		at io.trino.plugin.jdbc.BaseJdbcClient.getTableHandle(BaseJdbcClient.java:228)
		... 67 more
	Caused by: oracle.ucp.UniversalConnectionPoolException: UCP-45064: All connections in the Universal Connection Pool are in use - [ 30, 30, 32, 2, 0, 0, 1, 0, 30, 30 ]
		at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:316)
		at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:62)
		at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:98)
		at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:520)
		at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidateHelper(UniversalConnectionPoolImpl.java:279)
		at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:191)
		at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:157)
		at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:207)
		at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:608)
		at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:128)
		at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1928)
		... 90 more
Caused by: oracle.ucp.UniversalConnectionPoolException: UCP-45064: All connections in the Universal Connection Pool are in use - [ 30, 30, 32, 2, 0, 0, 1, 0, 30, 30 ]
	at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:316)
	at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:62)
	at oracle.ucp.util.UCPErrorHandler.throwUniversalConnectionPoolException(UCPErrorHandler.java:98)
	at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:520)
	at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidateHelper(UniversalConnectionPoolImpl.java:279)
	at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:191)
	at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:157)
	at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:207)
	at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.borrowConnection(OracleJDBCConnectionPool.java:608)
	at oracle.ucp.jdbc.oracle.OracleConnectionConnectionPool.borrowConnection(OracleConnectionConnectionPool.java:128)
	at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:1928)
	... 91 more