summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaweł Chmielowski <pawel@process-one.net>2022-07-19 14:35:35 +0200
committerPaweł Chmielowski <pawel@process-one.net>2022-07-19 14:35:35 +0200
commit7b944444ce955d493bc49d504b91e436e7b4a895 (patch)
tree1b5f60aefe5c10c09e891215de05356b2d0b7f06 /src
parentMake first sql reconnect wait shorter time (diff)
Catch mysql connection being close earlier
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_sql.erl5
1 files changed, 4 insertions, 1 deletions
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),