diff options
author | Paweł Chmielowski <pawel@process-one.net> | 2022-07-19 14:35:35 +0200 |
---|---|---|
committer | Paweł Chmielowski <pawel@process-one.net> | 2022-07-19 14:35:35 +0200 |
commit | 7b944444ce955d493bc49d504b91e436e7b4a895 (patch) | |
tree | 1b5f60aefe5c10c09e891215de05356b2d0b7f06 /src | |
parent | Make first sql reconnect wait shorter time (diff) |
Catch mysql connection being close earlier
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_sql.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl index 7f31668d2..1e32a87c8 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), |