I use docker image metabase/metabase:v0.35.3 with postgres:9.6-alpine. When just start up and configurate a datasource via ssh, it’s running smoothly. But after a period of idle time, I would get the following errors. I think the connection pool of metabase can’t perceive the ssh connection idle timeout, so it still use the existing connection. So should I optimize the parameter of connection pool and how? Thanks.
05-14 19:01:25 ERROR middleware.catch-exceptions :: Error processing query: null
{:database_id 2,
:started_at (t/zoned-date-time “2020-05-14T19:01:12.301881+08:00[Asia/Shanghai]”),
:via
[{:status :failed,
:class java.sql.SQLNonTransientConnectionException,
:error “Socket fail to connect to host:localhost, port:42972. Connection refused (Connection refused)”,
:stacktrace
[“org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:241)”
“org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.connException(ExceptionMapper.java:87)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createSocket(AbstractConnectProtocol.java:218)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:474)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1236)”
“org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:610)”
“org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142)”
“org.mariadb.jdbc.Driver.connect(Driver.java:86)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“–> connection_pool$proxy_data_source$reify__19826.getConnection(connection_pool.clj:29)”],
:state “08”}
{:status :failed,
:class java.sql.SQLNonTransientConnectionException,
:error “Could not connect to address=(host=localhost)(port=42972)(type=master) : Socket fail to connect to host:localhost, port:42972. Connection refused (Connection refused)”,
:stacktrace
[“org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:241)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1241)”
“org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:610)”
“org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142)”
“org.mariadb.jdbc.Driver.connect(Driver.java:86)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“–> connection_pool$proxy_data_source$reify__19826.getConnection(connection_pool.clj:29)”],
:state “08”}
{:status :failed,
:class com.mchange.v2.resourcepool.CannotAcquireResourceException,
:error “A ResourcePool could not acquire a resource from its primary factory or source.”,
:stacktrace
[“com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1507)”
“com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:644)”
“com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:554)”
“com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:758)”
“com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:685)”
“com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140)”
“–> driver.sql_jdbc.execute$fn__70552.invokeStatic(execute.clj:157)”
“driver.sql_jdbc.execute$fn__70552.invoke(execute.clj:155)”
“driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:386)”
“driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:377)”
“driver.sql_jdbc$fn__72711.invokeStatic(sql_jdbc.clj:50)”
“driver.sql_jdbc$fn__72711.invoke(sql_jdbc.clj:48)”
“query_processor.context$executef.invokeStatic(context.clj:59)”
“query_processor.context$executef.invoke(context.clj:48)”
“query_processor.context.default$default_runf.invokeStatic(default.clj:69)”
“query_processor.context.default$default_runf.invoke(default.clj:67)”
“query_processor.context$runf.invokeStatic(context.clj:45)”
“query_processor.context$runf.invoke(context.clj:39)”
“query_processor.reducible$pivot.invokeStatic(reducible.clj:34)”
“query_processor.reducible$pivot.invoke(reducible.clj:31)”
“query_processor.middleware.mbql_to_native$mbql__GT_native$fn__43003.invoke(mbql_to_native.clj:26)”
“query_processor.middleware.check_features$check_features$fn__42317.invoke(check_features.clj:42)”
“query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__43168.invoke(optimize_datetime_filters.clj:133)”
“query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__47065.invoke(wrap_value_literals.clj:137)”
“query_processor.middleware.annotate$add_column_info$fn__40946.invoke(annotate.clj:577)”
“query_processor.middleware.permissions$check_query_permissions$fn__42192.invoke(permissions.clj:64)”
“query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__43667.invoke(pre_alias_aggregations.clj:40)”
“query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__42390.invoke(cumulative_aggregations.clj:61)”
“query_processor.middleware.resolve_joins$resolve_joins$fn__44199.invoke(resolve_joins.clj:183)”
“query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__39133.invoke(add_implicit_joins.clj:245)”
“query_processor.middleware.limit$limit$fn__42989.invoke(limit.clj:38)”
“query_processor.middleware.format_rows$format_rows$fn__42970.invoke(format_rows.clj:81)”
“query_processor.middleware.desugar$desugar$fn__42456.invoke(desugar.clj:22)”
“query_processor.middleware.binning$update_binning_strategy$fn__41490.invoke(binning.clj:229)”
“query_processor.middleware.resolve_fields$resolve_fields$fn__41998.invoke(resolve_fields.clj:24)”
“query_processor.middleware.add_dimension_projections$add_remapping$fn__38669.invoke(add_dimension_projections.clj:272)”
“query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__38889.invoke(add_implicit_clauses.clj:147)”
“query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__39282.invoke(add_source_metadata.clj:105)”
“query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__43864.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)”
“query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__41131.invoke(auto_bucket_datetimes.clj:125)”
“query_processor.middleware.resolve_source_table$resolve_source_tables$fn__42045.invoke(resolve_source_table.clj:46)”
“query_processor.middleware.parameters$substitute_parameters$fn__43649.invoke(parameters.clj:97)”
“query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__42097.invoke(resolve_referenced.clj:80)”
“query_processor.middleware.expand_macros$expand_macros$fn__42712.invoke(expand_macros.clj:158)”
“query_processor.middleware.add_timezone_info$add_timezone_info$fn__39313.invoke(add_timezone_info.clj:15)”
“query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__46949.invoke(splice_params_in_response.clj:32)”
“query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875$fn__43879.invoke(resolve_database_and_driver.clj:33)”
“driver$do_with_driver.invokeStatic(driver.clj:61)”
“driver$do_with_driver.invoke(driver.clj:57)”
“query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875.invoke(resolve_database_and_driver.clj:27)”
“query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__42918.invoke(fetch_source_query.clj:243)”
“query_processor.middleware.store$initialize_store$fn__46958$fn__46959.invoke(store.clj:11)”
“query_processor.store$do_with_store.invokeStatic(store.clj:46)”
“query_processor.store$do_with_store.invoke(store.clj:40)”
“query_processor.middleware.store$initialize_store$fn__46958.invoke(store.clj:10)”
“query_processor.middleware.cache$maybe_return_cached_results$fn__41974.invoke(cache.clj:208)”
“query_processor.middleware.validate$validate_query$fn__46967.invoke(validate.clj:10)”
“query_processor.middleware.normalize_query$normalize$fn__43016.invoke(normalize_query.clj:22)”
“query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__39151.invoke(add_rows_truncated.clj:36)”
“query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__46934.invoke(results_metadata.clj:128)”
“query_processor.middleware.constraints$add_default_userland_constraints$fn__42333.invoke(constraints.clj:42)”
“query_processor.middleware.process_userland_query$process_userland_query$fn__43738.invoke(process_userland_query.clj:136)”
“query_processor.middleware.catch_exceptions$catch_exceptions$fn__42276.invoke(catch_exceptions.clj:174)”
“query_processor.reducible$async_qp$qp_STAR___37952$thunk__37953.invoke(reducible.clj:101)”
“query_processor.reducible$async_qp$qp_STAR___37952.invoke(reducible.clj:107)”
“query_processor.reducible$sync_qp$qp_STAR___37961$fn__37964.invoke(reducible.clj:133)”
“query_processor.reducible$sync_qp$qp_STAR___37961.invoke(reducible.clj:132)”
“query_processor$process_userland_query.invokeStatic(query_processor.clj:218)”
“query_processor$process_userland_query.doInvoke(query_processor.clj:214)”
“query_processor$fn__47133$process_query_and_save_execution_BANG___47142$fn__47145.invoke(query_processor.clj:233)”
“query_processor$fn__47133$process_query_and_save_execution_BANG___47142.invoke(query_processor.clj:225)”
“query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186$fn__47189.invoke(query_processor.clj:245)”
“query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186.invoke(query_processor.clj:238)”
“api.dataset$fn__50475$fn__50478.invoke(dataset.clj:52)”
“query_processor.streaming$streaming_response_STAR_$fn__33990$fn__33991.invoke(streaming.clj:73)”
“query_processor.streaming$streaming_response_STAR_$fn__33990.invoke(streaming.clj:72)”
“async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)”
“async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)”
“async.streaming_response$do_f_async$fn__23079.invoke(streaming_response.clj:85)”]}
{:status :failed,
:class java.sql.SQLException,
:error “Connections could not be acquired from the underlying database!”,
:stacktrace
[“com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118)”
“com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:692)”
“com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140)”
“–> driver.sql_jdbc.execute$fn__70552.invokeStatic(execute.clj:157)”
“driver.sql_jdbc.execute$fn__70552.invoke(execute.clj:155)”
“driver.sql_jdbc.execute$execute_reducible_query.invokeStatic(execute.clj:386)”
“driver.sql_jdbc.execute$execute_reducible_query.invoke(execute.clj:377)”
“driver.sql_jdbc$fn__72711.invokeStatic(sql_jdbc.clj:50)”
“driver.sql_jdbc$fn__72711.invoke(sql_jdbc.clj:48)”
“query_processor.context$executef.invokeStatic(context.clj:59)”
“query_processor.context$executef.invoke(context.clj:48)”
“query_processor.context.default$default_runf.invokeStatic(default.clj:69)”
“query_processor.context.default$default_runf.invoke(default.clj:67)”
“query_processor.context$runf.invokeStatic(context.clj:45)”
“query_processor.context$runf.invoke(context.clj:39)”
“query_processor.reducible$pivot.invokeStatic(reducible.clj:34)”
“query_processor.reducible$pivot.invoke(reducible.clj:31)”
“query_processor.middleware.mbql_to_native$mbql__GT_native$fn__43003.invoke(mbql_to_native.clj:26)”
“query_processor.middleware.check_features$check_features$fn__42317.invoke(check_features.clj:42)”
“query_processor.middleware.optimize_datetime_filters$optimize_datetime_filters$fn__43168.invoke(optimize_datetime_filters.clj:133)”
“query_processor.middleware.wrap_value_literals$wrap_value_literals$fn__47065.invoke(wrap_value_literals.clj:137)”
“query_processor.middleware.annotate$add_column_info$fn__40946.invoke(annotate.clj:577)”
“query_processor.middleware.permissions$check_query_permissions$fn__42192.invoke(permissions.clj:64)”
“query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__43667.invoke(pre_alias_aggregations.clj:40)”
“query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__42390.invoke(cumulative_aggregations.clj:61)”
“query_processor.middleware.resolve_joins$resolve_joins$fn__44199.invoke(resolve_joins.clj:183)”
“query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__39133.invoke(add_implicit_joins.clj:245)”
“query_processor.middleware.limit$limit$fn__42989.invoke(limit.clj:38)”
“query_processor.middleware.format_rows$format_rows$fn__42970.invoke(format_rows.clj:81)”
“query_processor.middleware.desugar$desugar$fn__42456.invoke(desugar.clj:22)”
“query_processor.middleware.binning$update_binning_strategy$fn__41490.invoke(binning.clj:229)”
“query_processor.middleware.resolve_fields$resolve_fields$fn__41998.invoke(resolve_fields.clj:24)”
“query_processor.middleware.add_dimension_projections$add_remapping$fn__38669.invoke(add_dimension_projections.clj:272)”
“query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__38889.invoke(add_implicit_clauses.clj:147)”
“query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__39282.invoke(add_source_metadata.clj:105)”
“query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__43864.invoke(reconcile_breakout_and_order_by_bucketing.clj:98)”
“query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__41131.invoke(auto_bucket_datetimes.clj:125)”
“query_processor.middleware.resolve_source_table$resolve_source_tables$fn__42045.invoke(resolve_source_table.clj:46)”
“query_processor.middleware.parameters$substitute_parameters$fn__43649.invoke(parameters.clj:97)”
“query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__42097.invoke(resolve_referenced.clj:80)”
“query_processor.middleware.expand_macros$expand_macros$fn__42712.invoke(expand_macros.clj:158)”
“query_processor.middleware.add_timezone_info$add_timezone_info$fn__39313.invoke(add_timezone_info.clj:15)”
“query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__46949.invoke(splice_params_in_response.clj:32)”
“query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875$fn__43879.invoke(resolve_database_and_driver.clj:33)”
“driver$do_with_driver.invokeStatic(driver.clj:61)”
“driver$do_with_driver.invoke(driver.clj:57)”
“query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__43875.invoke(resolve_database_and_driver.clj:27)”
“query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__42918.invoke(fetch_source_query.clj:243)”
“query_processor.middleware.store$initialize_store$fn__46958$fn__46959.invoke(store.clj:11)”
“query_processor.store$do_with_store.invokeStatic(store.clj:46)”
“query_processor.store$do_with_store.invoke(store.clj:40)”
“query_processor.middleware.store$initialize_store$fn__46958.invoke(store.clj:10)”
“query_processor.middleware.cache$maybe_return_cached_results$fn__41974.invoke(cache.clj:208)”
“query_processor.middleware.validate$validate_query$fn__46967.invoke(validate.clj:10)”
“query_processor.middleware.normalize_query$normalize$fn__43016.invoke(normalize_query.clj:22)”
“query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__39151.invoke(add_rows_truncated.clj:36)”
“query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__46934.invoke(results_metadata.clj:128)”
“query_processor.middleware.constraints$add_default_userland_constraints$fn__42333.invoke(constraints.clj:42)”
“query_processor.middleware.process_userland_query$process_userland_query$fn__43738.invoke(process_userland_query.clj:136)”
“query_processor.middleware.catch_exceptions$catch_exceptions$fn__42276.invoke(catch_exceptions.clj:174)”
“query_processor.reducible$async_qp$qp_STAR___37952$thunk__37953.invoke(reducible.clj:101)”
“query_processor.reducible$async_qp$qp_STAR___37952.invoke(reducible.clj:107)”
“query_processor.reducible$sync_qp$qp_STAR___37961$fn__37964.invoke(reducible.clj:133)”
“query_processor.reducible$sync_qp$qp_STAR___37961.invoke(reducible.clj:132)”
“query_processor$process_userland_query.invokeStatic(query_processor.clj:218)”
“query_processor$process_userland_query.doInvoke(query_processor.clj:214)”
“query_processor$fn__47133$process_query_and_save_execution_BANG___47142$fn__47145.invoke(query_processor.clj:233)”
“query_processor$fn__47133$process_query_and_save_execution_BANG___47142.invoke(query_processor.clj:225)”
“query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186$fn__47189.invoke(query_processor.clj:245)”
“query_processor$fn__47177$process_query_and_save_with_max_results_constraints_BANG___47186.invoke(query_processor.clj:238)”
“api.dataset$fn__50475$fn__50478.invoke(dataset.clj:52)”
“query_processor.streaming$streaming_response_STAR_$fn__33990$fn__33991.invoke(streaming.clj:73)”
“query_processor.streaming$streaming_response_STAR_$fn__33990.invoke(streaming.clj:72)”
“async.streaming_response$do_f_STAR_.invokeStatic(streaming_response.clj:66)”
“async.streaming_response$do_f_STAR_.invoke(streaming_response.clj:64)”
“async.streaming_response$do_f_async$fn__23079.invoke(streaming_response.clj:85)”],
:state nil}],
:json_query {:database 2, :query {:source-table 29}, :type “query”, :parameters [], :middleware {:add-default-userland-constraints? true}},
:native
{:query
“SELECT mas_lead
.id
AS id
, mas_lead
.contact_mobile
AS contact_mobile
, mas_lead
.duplicate_id
AS duplicate_id
, mas_lead
.extra_tags
AS extra_tags
, mas_lead
.grade
AS grade
, mas_lead
.latest_lead_time
AS latest_lead_time
, mas_lead
.lead_type
AS lead_type
, mas_lead
.mas_city
AS mas_city
, mas_lead
.mas_gender
AS mas_gender
, mas_lead
.mas_model
AS mas_model
, mas_lead
.mas_province
AS mas_province
, mas_lead
.mas_series
AS mas_series
, mas_lead
.mobile
AS mobile
, mas_lead
.operator
AS operator
, mas_lead
.raw_lead_id
AS raw_lead_id
, mas_lead
.raw_score
AS raw_score
, mas_lead
.score
AS score
, mas_lead
.score_msg
AS score_msg
, mas_lead
.score_time
AS score_time
, mas_lead
.sequence
AS sequence
, mas_lead
.state
AS state
, mas_lead
.track_id
AS track_id
, mas_lead
.track_status
AS track_status
, mas_lead
.tracker_id
AS tracker_id
FROM mas_lead
LIMIT 2000”,
:params nil},
:status :failed,
:class java.net.ConnectException,
:stacktrace
[“java.base/java.net.PlainSocketImpl.socketConnect(Native Method)”
“java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)”
“java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)”
“java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)”
“java.base/java.net.SocksSocketImpl.connect(Unknown Source)”
“java.base/java.net.Socket.connect(Unknown Source)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createSocket(AbstractConnectProtocol.java:213)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:474)”
“org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1236)”
“org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:610)”
“org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:142)”
“org.mariadb.jdbc.Driver.connect(Driver.java:86)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“java.sql/java.sql.DriverManager.getConnection(Unknown Source)”
“–> connection_pool$proxy_data_source$reify__19826.getConnection(connection_pool.clj:29)”],
:context :ad-hoc,
:error “Socket fail to connect to host:localhost, port:42972. Connection refused (Connection refused)”,
:row_count 0,
:running_time 0,
:preprocessed