relferreira / metabase-sparksql-databricks-driver

GNU Affero General Public License v3.0
28 stars 32 forks source link

Error trying to connect do SQL Server in version 0.48.6 #37

Open harlemmuniz opened 5 months ago

harlemmuniz commented 5 months ago

Hello,

I have updated the Metabase and Driver to 0.48.6 version. The connection with Databricks works fine, but with SQL Server is doesn't. Could you guys check please what is working? See the error below when I try to save a new or existing database:

2024-04-09 19:49:16,590 ERROR api.database :: Não é possível conectar ao banco de dados
clojure.lang.ExceptionInfo: Database 'db-name' on server '' is not currently available.  Please retry the connection later.  If the problem persists, contact customer support, and provide them the session tracing ID of '{E42A2154-39DD-4ABA-9747-DACCEB0B861A}'. ClientConnectionId:6a2d6096-3eab-4067-bbc8-5746815cecc4 {:message "Database 'db-name' on server '' is not currently available.  Please retry the connection later.  If the problem persists, contact customer support, and provide them the session tracing ID of '{E42A2154-39DD-4ABA-9747-DACCEB0B861A}'. ClientConnectionId:6a2d6096-3eab-4067-bbc8-5746815cecc4"}
        at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:165)
        at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:136)
        at clojure.lang.RestFn.invoke(RestFn.java:442)
        at metabase.api.database$test_database_connection.invokeStatic(database.clj:706)
        at metabase.api.database$test_database_connection.doInvoke(database.clj:696)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at metabase.api.database$test_connection_details.invokeStatic(database.clj:760)
        at metabase.api.database$test_connection_details.invoke(database.clj:740)
        at metabase.api.database$fn__98476.invokeStatic(database.clj:782)
        at metabase.api.database$fn__98476.invoke(database.clj:764)
        at compojure.core$wrap_response$fn__44648.invoke(core.clj:160)
        at compojure.core$wrap_route_middleware$fn__44632.invoke(core.clj:132)
        at compojure.core$wrap_route_info$fn__44637.invoke(core.clj:139)
        at compojure.core$wrap_route_matches$fn__44641.invoke(core.clj:151)
        at clojure.lang.Var.invoke(Var.java:393)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__44641.invoke(core.clj:152)
        at clojure.lang.Var.invoke(Var.java:393)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660.invoke(core.clj:200)
        at metabase.server.middleware.auth$enforce_authentication$fn__93942.invoke(auth.clj:17)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660.invoke(core.clj:200)
        at compojure.core$make_context$handler__44688.invoke(core.clj:290)
        at compojure.core$make_context$fn__44692.invoke(core.clj:300)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$make_context$fn__44692.invoke(core.clj:301)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at metabase.api.routes$fn__101922$fn__101925.invoke(routes.clj:67)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660.invoke(core.clj:200)
        at clojure.lang.AFn.applyToHelper(AFn.java:160)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$apply.invoke(core.clj:662)
        at metabase.server.routes$fn__102087$fn__102088.doInvoke(routes.clj:72)
        at clojure.lang.RestFn.invoke(RestFn.java:436)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660.invoke(core.clj:200)
        at compojure.core$make_context$handler__44688.invoke(core.clj:290)
        at compojure.core$make_context$fn__44692.invoke(core.clj:300)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__44641.invoke(core.clj:153)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__44641.invoke(core.clj:153)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__44641.invoke(core.clj:153)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660$f__44661$respond_SINGLEQUOTE___44662.invoke(core.clj:197)
        at metabase.server.routes$fn__102072$fn__102074.invoke(routes.clj:49)
        at compojure.core$routes$fn__44660$f__44661.invoke(core.clj:198)
        at compojure.core$routes$fn__44660.invoke(core.clj:200)
        at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__98698.invoke(exceptions.clj:108)
        at metabase.server.middleware.exceptions$catch_api_exceptions$fn__98695.invoke(exceptions.clj:96)
        at metabase.server.middleware.log$log_api_call$fn__102355$fn__102356$fn__102357.invoke(log.clj:216)
        at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:18)
        at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:12)
        at metabase.server.middleware.log$log_api_call$fn__102355$fn__102356.invoke(log.clj:208)
        at toucan2.execute$do_with_call_counts.invokeStatic(execute.clj:112)
        at toucan2.execute$do_with_call_counts.invoke(execute.clj:103)
        at metabase.server.middleware.log$log_api_call$fn__102355.invoke(log.clj:207)
        at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__104391.invoke(browser_cookie.clj:40)
        at metabase.server.middleware.security$add_security_headers$fn__84831.invoke(security.clj:182)
        at metabase.server.middleware.json$wrap_json_body$fn__46005.invoke(json.clj:67)
        at metabase.server.middleware.offset_paging$handle_paging$fn__84855.invoke(offset_paging.clj:45)
        at metabase.server.middleware.json$wrap_streamed_json_response$fn__46023.invoke(json.clj:103)
        at ring.middleware.keyword_params$wrap_keyword_params$fn__104658.invoke(keyword_params.clj:55)
        at ring.middleware.params$wrap_params$fn__104677.invoke(params.clj:77)
        at metabase.server.middleware.misc$maybe_set_site_url$fn__67151.invoke(misc.clj:61)
        at metabase.server.middleware.session$reset_session_timeout$fn__72574.invoke(session.clj:543)
        at metabase.server.middleware.session$bind_current_user$fn__72540$fn__72541.invoke(session.clj:438)
        at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:417)
        at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:401)
        at metabase.server.middleware.session$bind_current_user$fn__72540.invoke(session.clj:437)
        at metabase.server.middleware.session$wrap_current_user_info$fn__72523.invoke(session.clj:376)
        at metabase.server.middleware.session$wrap_session_id$fn__72495.invoke(session.clj:255)
        at metabase.server.middleware.auth$wrap_static_api_key$fn__93950.invoke(auth.clj:30)
        at ring.middleware.cookies$wrap_cookies$fn__104578.invoke(cookies.clj:194)
        at metabase.server.middleware.misc$add_content_type$fn__67133.invoke(misc.clj:29)
        at metabase.server.middleware.misc$disable_streaming_buffering$fn__67159.invoke(misc.clj:78)
        at ring.middleware.gzip$wrap_gzip$fn__104620.invoke(gzip.clj:86)
        at metabase.server.middleware.misc$bind_request$fn__67162.invoke(misc.clj:95)
        at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__104407.invoke(ssl.clj:41)
        at metabase.server$async_proxy_handler$fn__67573.invoke(server.clj:78)
        at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
        at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.Server.handle(Server.java:563)
        at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Database 'db-name' on server '' is not currently available.  Please retry the connection later.  If the problem persists, contact customer support, and provide them the session tracing ID of '{E42A2154-39DD-4ABA-9747-DACCEB0B861A}'. ClientConnectionId:6a2d6096-3eab-4067-bbc8-5746815cecc4
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
        at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:304)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:137)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:42)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:6612)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:5154)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:5087)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4137)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3583)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3172)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3014)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1836)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1246)
        at metabase.plugins.jdbc_proxy$proxy_driver$reify__84301.connect(jdbc_proxy.clj:37)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:326)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:323)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_$fn__51029.invoke(connection.clj:335)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection$fn__51011.invoke(connection.clj:311)
        at metabase.util.ssh$do_with_ssh_tunnel.invokeStatic(ssh.clj:165)
        at metabase.util.ssh$do_with_ssh_tunnel.invoke(ssh.clj:154)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invokeStatic(connection.clj:309)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invoke(connection.clj:305)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:334)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:330)
        at metabase.driver.sql_jdbc$fn__106628.invokeStatic(sql_jdbc.clj:49)
        at metabase.driver.sql_jdbc$fn__106628.invoke(sql_jdbc.clj:47)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__59939.invoke(util.clj:148)
        at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        ... 1 more
2024-04-09 19:49:16,809 DEBUG middleware.log :: POST /api/database 400 9.7 s (1 chamadas ao banco de dados)
{:message
 "Database 'db-name' on server '' is not currently available.  Please retry the connection later.  If the problem persists, contact customer support, and provide them the session tracing ID of '{E42A2154-39DD-4ABA-9747-DACCEB0B861A}'. ClientConnectionId:6a2d6096-3eab-4067-bbc8-5746815cecc4"}

We have checked routes and firewall rules in Database instance and everything is working fine. And is everything working on again in 0.45.1 version after downgraded it.

borft commented 2 months ago

Whilst I'm not an expert on the matter, this is a driver for databricks spark, not ms sql server. So why do you think this driver is the problem?