prestodb / presto

The official home of the Presto distributed SQL query engine for big data
http://prestodb.io
Apache License 2.0
16.04k stars 5.38k forks source link

CI / product-tests-specific-environment2, `Product Tests Specific 2.8` for sql-server is flaky #23686

Closed zuyu closed 1 month ago

zuyu commented 1 month ago

https://github.com/prestodb/presto/actions/runs/10945815176/job/30390900107

The flakiness seems related to the sql-server setup: The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

cc @agrawalreetika

2024-09-20 00:02:49 SEVERE: cannot initialize test suite
java.lang.RuntimeException: java.sql.SQLException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".)
    at com.google.common.base.Throwables.propagate(Throwables.java:249)
    at io.prestodb.tempto.query.JdbcQueryExecutor.openConnection(JdbcQueryExecutor.java:62)
    at io.prestodb.tempto.query.JdbcQueryExecutor.getConnection(JdbcQueryExecutor.java:90)
    at io.prestodb.tempto.internal.fulfillment.table.AbstractTableManager.getTableNames(AbstractTableManager.java:63)
    at io.prestodb.tempto.internal.fulfillment.table.AbstractTableManager.dropStaleMutableTables(AbstractTableManager.java:52)
    at io.prestodb.tempto.internal.fulfillment.table.TableRequirementFulfiller.createTable(TableRequirementFulfiller.java:75)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.DistinctOps$1$2.accept(DistinctOps.java:175)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1553)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.prestodb.tempto.internal.fulfillment.table.TableRequirementFulfiller.fulfill(TableRequirementFulfiller.java:60)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.lambda$doFulfillment$0(TestInitializationListener.java:326)
    at io.prestodb.tempto.context.TestContextDsl.runWithTestContext(TestContextDsl.java:51)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.doFulfillment(TestInitializationListener.java:324)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.onStart(TestInitializationListener.java:189)
    at org.testng.TestRunner.fireEvent(TestRunner.java:938)
    at org.testng.TestRunner.beforeRun(TestRunner.java:630)
    at org.testng.TestRunner.run(TestRunner.java:596)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
    at org.testng.SuiteRunner.run(SuiteRunner.java:326)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.runSuites(TestNG.java:1092)
    at org.testng.TestNG.run(TestNG.java:1060)
    at io.prestodb.tempto.runner.TemptoRunner.run(TemptoRunner.java:94)
    at io.prestodb.tempto.runner.TemptoRunner.runTempto(TemptoRunner.java:67)
    at io.prestodb.tempto.runner.TemptoRunner.runTempto(TemptoRunner.java:55)
    at com.facebook.presto.tests.TemptoProductTestRunner.main(TemptoProductTestRunner.java:27)
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2291)
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)
    at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
    at io.prestodb.tempto.query.JdbcConnectionsPool.connectionFor(JdbcConnectionsPool.java:37)
    at io.prestodb.tempto.query.JdbcQueryExecutor.openConnection(JdbcQueryExecutor.java:59)
    ... 38 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:226)
    at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:277)
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2379)
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:652)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2379)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700)
    at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:39)
    at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:256)
    at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2301)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2287)
    ... 42 more

Error: Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".)
    at com.google.common.base.Throwables.propagate(Throwables.java:249)
    at io.prestodb.tempto.query.JdbcQueryExecutor.openConnection(JdbcQueryExecutor.java:62)
    at io.prestodb.tempto.query.JdbcQueryExecutor.getConnection(JdbcQueryExecutor.java:90)
    at io.prestodb.tempto.internal.fulfillment.table.AbstractTableManager.getTableNames(AbstractTableManager.java:63)
    at io.prestodb.tempto.internal.fulfillment.table.AbstractTableManager.dropStaleMutableTables(AbstractTableManager.java:52)
    at io.prestodb.tempto.internal.fulfillment.table.TableRequirementFulfiller.createTable(TableRequirementFulfiller.java:75)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.DistinctOps$1$2.accept(DistinctOps.java:175)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1553)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at io.prestodb.tempto.internal.fulfillment.table.TableRequirementFulfiller.fulfill(TableRequirementFulfiller.java:60)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.lambda$doFulfillment$0(TestInitializationListener.java:326)
    at io.prestodb.tempto.context.TestContextDsl.runWithTestContext(TestContextDsl.java:51)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.doFulfillment(TestInitializationListener.java:324)
    at io.prestodb.tempto.internal.initialization.TestInitializationListener.onStart(TestInitializationListener.java:189)
    at org.testng.TestRunner.fireEvent(TestRunner.java:938)
    at org.testng.TestRunner.beforeRun(TestRunner.java:630)
    at org.testng.TestRunner.run(TestRunner.java:596)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
    at org.testng.SuiteRunner.run(SuiteRunner.java:326)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.runSuites(TestNG.java:1092)
    at org.testng.TestNG.run(TestNG.java:1060)
    at io.prestodb.tempto.runner.TemptoRunner.run(TemptoRunner.java:94)
    at io.prestodb.tempto.runner.TemptoRunner.runTempto(TemptoRunner.java:67)
    at io.prestodb.tempto.runner.TemptoRunner.runTempto(TemptoRunner.java:55)
    at com.facebook.presto.tests.TemptoProductTestRunner.main(TemptoProductTestRunner.java:27)
Caused by: java.sql.SQLException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2291)
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)
    at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
    at io.prestodb.tempto.query.JdbcConnectionsPool.connectionFor(JdbcConnectionsPool.java:37)
    at io.prestodb.tempto.query.JdbcQueryExecutor.openConnection(JdbcQueryExecutor.java:59)
    ... 38 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host sqlserver, port 1433 has failed. Error: "sqlserver. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:226)
    at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:277)
    at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2379)
    at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:652)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2379)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700)
    at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:39)
    at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:256)
    at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2301)
    at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:[2287](https://github.com/prestodb/presto/actions/runs/10946344534/job/30392645141#step:14:2288))
    ... 42 more
elharo commented 1 month ago

ditto, I was just about to file this one

matt-calder commented 1 month ago

I think this test is straight-up broken. As far as I can tell, it is blocking all open PRs at the moment.

tdcmeehan commented 1 month ago

Thank you @agrawalreetika for taking the initiative and fixing this issue!