Hello everyone,
I have regularly faced with the problem pointed out in the topic title. Some of the questions in the dashboard do not properly load (error: "got an error writing communication packets"). The page reloading often helps to execute such questions but it is a bit annoying to do reloading regularly.
The problem often occurs with specific questions (not with all questions). Time execution of corresponding queries is about 2-3 seconds (native queries without filters).
I am attaching the text of the typical error. What may be a potential reason of the problem?
P.S. I do not see any error in nginx or mysql error logs when questions fail.
status :failed,
:class java.sql.SQLException,
:stacktrace
["org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1695)"
"org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1557)"
"org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1520)"
"org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:318)"
"org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:220)"
"org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149)"
"com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:67)"
"toucan2.jdbc.query$reduce_jdbc_query.invokeStatic(query.clj:40)"
"toucan2.jdbc.query$reduce_jdbc_query.invoke(query.clj:22)"
"toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invokeStatic(jdbc.clj:21)"
"toucan2.query_execution_backend.jdbc$transduce_execute_with_connection_primary_method_java_sql_Connection_default_default.invoke(jdbc.clj:11)"
"clojure.lang.AFn.applyToHelper(AFn.java:178)"
"clojure.lang.AFn.applyTo(AFn.java:144)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.applyTo(RestFn.java:137)"
"clojure.core$apply.invokeStatic(core.clj:675)"
"clojure.core$partial$fn__5908.doInvoke(core.clj:2639)"
"clojure.lang.RestFn.applyTo(RestFn.java:146)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.applyTo(RestFn.java:137)"
"clojure.core$apply.invokeStatic(core.clj:667)"
"clojure.core$apply.invoke(core.clj:662)"
"methodical.impl.combo.threaded$fn__19588$fn__19589$fn__19596.invoke(threaded.clj:79)"
"methodical.impl.combo.threaded$reducer_fn$fn__19558$fn__19562.invoke(threaded.clj:23)"
"clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58)"
"clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136)"
"clojure.core.protocols$fn__8244.invoke(protocols.clj:124)"
"clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19)"
"clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)"
"clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)"
"clojure.core.protocols$fn__8236.invoke(protocols.clj:75)"
"clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)"
"clojure.core$reduce.invokeStatic(core.clj:6886)"
"clojure.core$reduce.invoke(core.clj:6868)"
"methodical.impl.combo.threaded$reducer_fn$fn__19558.invoke(threaded.clj:21)"
"clojure.core$comp$fn__5876.doInvoke(core.clj:2589)"
"clojure.lang.RestFn.applyTo(RestFn.java:146)"
"clojure.core$apply.invokeStatic(core.clj:675)"
"clojure.core$apply.doInvoke(core.clj:662)"
"clojure.lang.RestFn.invoke(RestFn.java:533)"
"methodical.impl.combo.threaded$combine_with_threader$fn__19568.doInvoke(threaded.clj:46)"
"clojure.lang.RestFn.applyTo(RestFn.java:151)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.applyTo(RestFn.java:137)"
"clojure.core$apply.invokeStatic(core.clj:675)"
"clojure.core$apply.doInvoke(core.clj:662)"
"clojure.lang.RestFn.invoke(RestFn.java:533)"
"methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:65)"
"methodical.impl.standard$invoke_multifn.doInvoke(standard.clj:47)"
"clojure.lang.RestFn.invoke(RestFn.java:594)"
"methodical.impl.standard.StandardMultiFn.invoke(standard.clj:199)"
"toucan2.pipeline$transduce_execute$with_connection_STAR___24262.invoke(pipeline.clj:86)"
"toucan2.connection$bind_current_connectable_fn$fn__23875.invoke(connection.clj:104)"
"toucan2.connection$bind_current_connectable_fn$fn__23875.invoke(connection.clj:104)"
"toucan2.connection$bind_current_connectable_fn$fn__23875.invoke(connection.clj:104)"
"toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invokeStatic(connection.clj:213)"
"toucan2.connection$do_with_connection_primary_method_javax_sql_DataSource.invoke(connection.clj:210)"
"clojure.lang.AFn.applyToHelper(AFn.java:160)"
"clojure.lang.AFn.applyTo(AFn.java:144)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.invoke(RestFn.java:436)"
"clojure.core$partial$fn__5908.invoke(core.clj:2642)"
"clojure.lang.AFn.applyToHelper(AFn.java:156)"
"clojure.lang.RestFn.applyTo(RestFn.java:132)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.invoke(RestFn.java:421)"
"methodical.impl.combo.threaded$fn__19588$fn__19589$fn__19590.invoke(threaded.clj:70)"
"methodical.impl.combo.threaded$reducer_fn$fn__19558$fn__19562.invoke(threaded.clj:23)"
"clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58)"
"clojure.core.protocols$fn__8244.invokeStatic(protocols.clj:136)"
"clojure.core.protocols$fn__8244.invoke(protocols.clj:124)"
"clojure.core.protocols$fn__8204$G__8199__8213.invoke(protocols.clj:19)"
"clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)"
"clojure.core.protocols$fn__8236.invokeStatic(protocols.clj:75)"
"clojure.core.protocols$fn__8236.invoke(protocols.clj:75)"
"clojure.core.protocols$fn__8178$G__8173__8191.invoke(protocols.clj:13)"
"clojure.core$reduce.invokeStatic(core.clj:6886)"
"clojure.core$reduce.invoke(core.clj:6868)"
"methodical.impl.combo.threaded$reducer_fn$fn__19558.invoke(threaded.clj:21)"
"clojure.core$comp$fn__5876.invoke(core.clj:2587)"
"methodical.impl.combo.threaded$combine_with_threader$fn__19568.invoke(threaded.clj:43)"
"clojure.lang.AFn.applyToHelper(AFn.java:156)"
"clojure.lang.RestFn.applyTo(RestFn.java:132)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.invoke(RestFn.java:421)"
"toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invokeStatic(connection.clj:118)"
"toucan2.connection$do_with_connection_around_method_toucan2_connection_default.invoke(connection.clj:106)"
"clojure.lang.AFn.applyToHelper(AFn.java:160)"
"clojure.lang.AFn.applyTo(AFn.java:144)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.invoke(RestFn.java:436)"
"clojure.core$partial$fn__5908.invoke(core.clj:2642)"
"clojure.lang.AFn.applyToHelper(AFn.java:156)"
"clojure.lang.RestFn.applyTo(RestFn.java:132)"
"clojure.lang.AFunction$1.doInvoke(AFunction.java:31)"
"clojure.lang.RestFn.invoke(RestFn.java:421)"
"methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:55)"
"methodical.impl.standard$invoke_multifn.invoke(standard.clj:47)"
"methodical.impl.standard.StandardMultiFn.invoke(standard.clj:193)"
"--> db.connection$do_with_connection_primary_method_default.invokeStatic(connection.clj:139)"
"db.connection$do_with_connection_primary_method_default.invoke(connection.clj:137)"
"query_processor.store$fn__53045$fetch_and_store_database_BANG___53050$fn__53051.invoke(store.clj:172)"
"query_processor.store$fn__53045$fetch_and_store_database_BANG___53050.invoke(store.clj:160)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_STAR_.invokeStatic(resolve_database_and_driver.clj:14)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_STAR_.invoke(resolve_database_and_driver.clj:11)"
"query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__69082.invoke(resolve_database_and_driver.clj:25)"
"query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__64952.invoke(fetch_source_query.clj:310)"
"query_processor.middleware.store$initialize_store$fn__65130$fn__65131.invoke(store.clj:12)"
"query_processor.store$do_with_store.invokeStatic(store.clj:47)"
"query_processor.store$do_with_store.invoke(store.clj:41)"
"query_processor.middleware.store$initialize_store$fn__65130.invoke(store.clj:11)"
"query_processor.middleware.normalize_query$normalize$fn__69371.invoke(normalize_query.clj:25)"
"query_processor.middleware.constraints$add_default_userland_constraints$fn__66308.invoke(constraints.clj:54)"
"query_processor.middleware.process_userland_query$process_userland_query$fn__69307.invoke(process_userland_query.clj:150)"
"query_processor.middleware.catch_exceptions$catch_exceptions$fn__69684.invoke(catch_exceptions.clj:171)"
"query_processor.reducible$async_qp$qp_STAR___59455$thunk__59457.invoke(reducible.clj:103)"
"query_processor.reducible$async_qp$qp_STAR___59455$fn__59459.invoke(reducible.clj:108)"],
:card_id 348,
:context :dashboard,
:error "Got an error writing communication packets",
:row_count 0,
:running_time 0,
:data {:rows [], :cols []}}
Diagnostic info
{
"browser-info": {
"language": "en-US",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
"vendor": "Google Inc."
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "11.0.18+10-post-Ubuntu-0ubuntu120.04.1",
"java.vendor": "Ubuntu",
"java.vendor.url": "https://ubuntu.com/",
"java.version": "11.0.18",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "11.0.18+10-post-Ubuntu-0ubuntu120.04.1",
"os.name": "Linux",
"os.version": "5.4.0-125-generic",
"user.language": "en",
"user.timezone": "Europe/Minsk"
},
"metabase-info": {
"databases": [
"h2",
"mysql"
],
"hosting-env": "unknown",
"application-database": "mysql",
"application-database-details": {
"database": {
"name": "MySQL",
"version": "8.0.32-0ubuntu0.20.04.2"
},
"jdbc-driver": {
"name": "MariaDB Connector/J",
"version": "2.7.6"
}
},
"run-mode": "prod",
"version": {
"date": "2023-04-05",
"tag": "v0.46.1",
"branch": "release-x.46.x",
"hash": "12a6e1d"
},
"settings": {
"report-timezone": null
}
}
}