fix: lost messages when clickhouse closes while sending messages

Fixes:
https://emqx.atlassian.net/browse/EMQX-10217
This commit is contained in:
Kjell Winblad 2023-06-09 16:04:38 +02:00
parent 4215da12f0
commit 61488ec407
1 changed files with 11 additions and 0 deletions

View File

@ -465,8 +465,19 @@ transform_and_log_clickhouse_result(ClickhouseErrorResult, ResourceID, SQL) ->
reason => ClickhouseErrorResult reason => ClickhouseErrorResult
}), }),
case ClickhouseErrorResult of case ClickhouseErrorResult of
%% TODO: The hackeny errors that the clickhouse library forwards are
%% very loosely defined. We should try to make sure that the following
%% handles all error cases that we need to handle as recoverable_error
{error, ecpool_empty} -> {error, ecpool_empty} ->
{error, {recoverable_error, ecpool_empty}}; {error, {recoverable_error, ecpool_empty}};
{error, econnrefused} ->
{error, {recoverable_error, econnrefused}};
{error, closed} ->
{error, {recoverable_error, closed}};
{error, {closed, PartialBody}} ->
{error, {recoverable_error, {closed_partial_body, PartialBody}}};
{error, disconnected} ->
{error, {recoverable_error, disconnected}};
_ -> _ ->
{error, ClickhouseErrorResult} {error, ClickhouseErrorResult}
end. end.