metabase-clickhouse-driver icon indicating copy to clipboard operation
metabase-clickhouse-driver copied to clipboard

Error running step ''sync-dbms-version'', Connection refused (Connection refused)

Open gemcoder21 opened this issue 1 year ago • 1 comments

Describe the bug

After upgrading to the latest version of Metabase, clickhouse and clickhouse Driver I started getting an error to sync tables. Metabase display charts but table syncing is broken.

No changes to the configuration were made before / after upgrade. I'm using SSH tunnel to connect.

Steps to reproduce

  1. Run Sync database schema now

Expected behaviour

Syncing tables with Clickhouse should work.

Error log

2024-09-03 16:11:04,866 INFO sync.util :: STARTING: Sync metadata for clickhouse Database 12 ''CL''
2024-09-03 16:11:04,871 DEBUG middleware.log :: POST /api/database/12/sync_schema 200 1.9 s (1 DB calls) App DB connections: 0/4 Jetty threads: 3/50 (6 idle, 0 queued) (45 total active threads) Queries in flight: 0 (0 queued) {:metabase-user-id 1}
2024-09-03 16:11:05,404 INFO sync.util :: STARTING: step ''sync-dbms-version'' for clickhouse Database 12 ''CL''
2024-09-03 16:11:05,453 WARN sync.util :: Error running step ''sync-dbms-version'' for clickhouse Database 12 ''CL''
java.sql.SQLException: Connection refused (Connection refused)
        at com.clickhouse.jdbc.SqlExceptionUtils.handle(SqlExceptionUtils.java:85)
        at com.clickhouse.jdbc.SqlExceptionUtils.create(SqlExceptionUtils.java:31)
        at com.clickhouse.jdbc.SqlExceptionUtils.handle(SqlExceptionUtils.java:90)
        at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.getServerInfo(ClickHouseConnectionImpl.java:131)
        at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.<init>(ClickHouseConnectionImpl.java:335)
        at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.<init>(ClickHouseConnectionImpl.java:288)
        at com.clickhouse.jdbc.ClickHouseDriver.connect(ClickHouseDriver.java:157)
        at com.clickhouse.jdbc.ClickHouseDriver.connect(ClickHouseDriver.java:41)
        at metabase.plugins.jdbc_proxy$proxy_driver$reify__87005.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$get_connection.invokeStatic(jdbc.clj:343)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at metabase.driver.sql_jdbc.execute$do_with_resolved_connection_data_source$reify__82001.getConnection(execute.clj:280)
        at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invokeStatic(execute.clj:336)
        at metabase.driver.sql_jdbc.execute$do_with_resolved_connection.invoke(execute.clj:320)
        at metabase.driver.clickhouse$fn__112987.invokeStatic(clickhouse.clj:82)
        at metabase.driver.clickhouse$fn__112987.invoke(clickhouse.clj:80)
        at clojure.lang.MultiFn.invoke(MultiFn.java:244)
        at metabase.driver.clickhouse_version$fn__84238.invokeStatic(clickhouse_version.clj:25)
        at metabase.driver.clickhouse_version$fn__84238.invoke(clickhouse_version.clj:24)
        at clojure.lang.AFn.applyToHelper(AFn.java:154)
        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 clojure.core.memoize$through_STAR_$fn__1892.invoke(memoize.clj:110)
        at clojure.core.cache$through$fn__851.invoke(cache.clj:55)
        at clojure.core.memoize$through_STAR_$fn__1888$fn__1889.invoke(memoize.clj:109)
        at clojure.core.memoize.RetryingDelay.deref(memoize.clj:47)
        at clojure.core$deref.invokeStatic(core.clj:2337)
        at clojure.core$deref.invoke(core.clj:2323)
        at clojure.core.memoize$cached_function$fn__1956.doInvoke(memoize.clj:234)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.lang.AFunction$1.doInvoke(AFunction.java:31)
        at clojure.lang.RestFn.invoke(RestFn.java:408)
        at metabase.driver.clickhouse_version$fn__84242.invokeStatic(clickhouse_version.clj:40)
        at metabase.driver.clickhouse_version$fn__84242.invoke(clickhouse_version.clj:38)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.sync.sync_metadata.dbms_version$sync_dbms_version_BANG_.invokeStatic(dbms_version.clj:20)
        at metabase.sync.sync_metadata.dbms_version$sync_dbms_version_BANG_.invoke(dbms_version.clj:16)
        at clojure.lang.AFn.applyToHelper(AFn.java:154)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:669)
        at clojure.core$apply.invoke(core.clj:662)
        at metabase.sync.util$run_step_with_metadata$fn__57666$fn__57669.invoke(util.clj:488)
        at metabase.models.task_history$do_with_task_history.invokeStatic(task_history.clj:115)
        at metabase.models.task_history$do_with_task_history.invoke(task_history.clj:104)
        at metabase.sync.util$run_step_with_metadata$fn__57666.doInvoke(util.clj:482)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at metabase.sync.util$with_start_and_finish_logging_STAR_.invokeStatic(util.clj:130)
        at metabase.sync.util$with_start_and_finish_logging_STAR_.invoke(util.clj:124)
        at metabase.sync.util$with_start_and_finish_debug_logging.invokeStatic(util.clj:148)
        at metabase.sync.util$with_start_and_finish_debug_logging.invoke(util.clj:144)
        at metabase.sync.util$run_step_with_metadata.invokeStatic(util.clj:477)
        at metabase.sync.util$run_step_with_metadata.invoke(util.clj:472)
        at metabase.sync.util$run_sync_operation$fn__57708$fn__57716.invoke(util.clj:561)
        at metabase.sync.util$run_sync_operation$fn__57708.invoke(util.clj:559)
        at metabase.models.task_history$do_with_task_history.invokeStatic(task_history.clj:115)
        at metabase.models.task_history$do_with_task_history.invoke(task_history.clj:104)
        at metabase.sync.util$run_sync_operation.invokeStatic(util.clj:556)
        at metabase.sync.util$run_sync_operation.invoke(util.clj:551)
        at metabase.sync.sync_metadata$sync_db_metadata_BANG_$fn__85840.invoke(sync_metadata.clj:70)
        at metabase.sync.util$do_with_error_handling.invokeStatic(util.clj:189)
        at metabase.sync.util$do_with_error_handling.invoke(util.clj:182)
        at clojure.core$partial$fn__5910.invoke(core.clj:2647)
        at metabase.driver$fn__55247.invokeStatic(driver.clj:820)
        at metabase.driver$fn__55247.invoke(driver.clj:820)
        at clojure.lang.MultiFn.invoke(MultiFn.java:239)
        at metabase.sync.util$sync_in_context$fn__57577.invoke(util.clj:165)
        at metabase.sync.util$with_db_logging_disabled$fn__57574.invoke(util.clj:157)
        at metabase.sync.util$with_start_and_finish_logging_STAR_.invokeStatic(util.clj:130)
        at metabase.sync.util$with_start_and_finish_logging_STAR_.invoke(util.clj:124)
        at metabase.sync.util$with_start_and_finish_logging$fn__57561.invoke(util.clj:142)
        at metabase.sync.util$with_sync_events$fn__57556.invoke(util.clj:116)
        at metabase.sync.util$with_duplicate_ops_prevented$fn__57543.invoke(util.clj:88)
        at metabase.sync.util$do_sync_operation.invokeStatic(util.clj:214)
        at metabase.sync.util$do_sync_operation.invoke(util.clj:208)
        at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invokeStatic(sync_metadata.clj:68)
        at metabase.sync.sync_metadata$sync_db_metadata_BANG_.invoke(sync_metadata.clj:65)
        at metabase.api.database$fn__101079$fn__101084.invoke(database.clj:1010)
        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)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.base/java.net.Socket.connect(Unknown Source)
        at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
        at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
        at com.clickhouse.client.http.HttpUrlConnectionImpl.post(HttpUrlConnectionImpl.java:244)
        at com.clickhouse.client.http.ClickHouseHttpClient.send(ClickHouseHttpClient.java:200)
        at com.clickhouse.client.AbstractClient.execute(AbstractClient.java:280)
        at com.clickhouse.client.ClickHouseClientBuilder$Agent.sendOnce(ClickHouseClientBuilder.java:282)
        at com.clickhouse.client.ClickHouseClientBuilder$Agent.send(ClickHouseClientBuilder.java:294)
        at com.clickhouse.client.ClickHouseClientBuilder$Agent.execute(ClickHouseClientBuilder.java:349)
        at com.clickhouse.client.ClickHouseClient.executeAndWait(ClickHouseClient.java:878)
        at com.clickhouse.client.ClickHouseRequest.executeAndWait(ClickHouseRequest.java:2154)
        at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.getServerInfo(ClickHouseConnectionImpl.java:128)
        ... 86 more
2024-09-03 16:11:05,474 INFO sync.util :: FINISHED: step ''sync-dbms-version'' for clickhouse Database 12 ''CL'' (70.2 ms)
2024-09-03 16:11:05,639 INFO sync.util :: FINISHED: Sync metadata for clickhouse Database 12 ''CL'' (772.2 ms)
2024-09-03 16:11:05,642 INFO sync.util :: STARTING: Analyze data for clickhouse Database 12 ''CL''
2024-09-03 16:11:05,671 INFO sync.util :: STARTING: step ''fingerprint-fields'' for clickhouse Database 12 ''CL''
2024-09-03 16:11:05,779 INFO sync.util :: FINISHED: step ''fingerprint-fields'' for clickhouse Database 12 ''CL'' (108.3 ms)
2024-09-03 16:11:05,781 INFO sync.util :: STARTING: step ''classify-fields'' for clickhouse Database 12 ''CL''
2024-09-03 16:11:05,867 INFO sync.util :: FINISHED: step ''classify-fields'' for clickhouse Database 12 ''CL'' (83.0 ms)
2024-09-03 16:11:05,882 INFO sync.util :: STARTING: step ''classify-tables'' for clickhouse Database 12 ''CL''
2024-09-03 16:11:05,971 INFO sync.util :: FINISHED: step ''classify-tables'' for clickhouse Database 12 ''CL'' (89.4 ms)
2024-09-03 16:11:06,011 INFO sync.util :: FINISHED: Analyze data for clickhouse Database 12 ''CL'' (368.9 ms)

Configuration

Environment

  • metabase-clickhouse-driver version: 1.50.6
  • metabase-clickhouse-driver configuration: --
  • Metabase version: v0.50.23
  • OS: Ubuntu

ClickHouse server

  • ClickHouse Server version: 24.8.2.3
  • ClickHouse Server non-default settings, if any:
  • CREATE TABLE statements for tables involved:
  • Sample data for all these tables, use clickhouse-obfuscator if necessary

gemcoder21 avatar Sep 03 '24 16:09 gemcoder21

Sorry for the late reply. In case the issue persists, does creating a new connection to the same ClickHouse instance work? Can you connect to another ClickHouse instance that does not require SSH, or does the sync not work for any CH connections in your case?

After upgrading to the latest version of Metabase, clickhouse and clickhouse Driver

What were the previous versions?

slvrtrn avatar Sep 30 '24 15:09 slvrtrn