From 7b944444ce955d493bc49d504b91e436e7b4a895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 19 Jul 2022 14:35:35 +0200 Subject: Catch mysql connection being close earlier --- src/ejabberd_sql.erl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl index 7f31668d..1e32a87c 100644 --- a/src/ejabberd_sql.erl +++ b/src/ejabberd_sql.erl @@ -684,7 +684,7 @@ sql_query_internal(Query) -> mysql -> mysql_to_odbc(p1_mysql_conn:squery(State#state.db_ref, [Query], self(), - [{QueryTimeout - 1000}, + [{timeout, QueryTimeout - 1000}, {result_type, binary}])); sqlite -> Host = State#state.host, @@ -869,6 +869,9 @@ sql_rollback() -> abort_on_driver_error({error, <<"query timed out">>} = Reply, From, Timestamp) -> reply(From, Reply, Timestamp), {stop, timeout, get(?STATE_KEY)}; +abort_on_driver_error({error, <<"connection closed">>} = Reply, From, Timestamp) -> + reply(From, Reply, Timestamp), + handle_reconnect(<<"connection closed">>, get(?STATE_KEY)); abort_on_driver_error({error, <<"Failed sending data on socket", _/binary>>} = Reply, From, Timestamp) -> reply(From, Reply, Timestamp), -- cgit v1.2.3