From d4fb812352558165e2d61bb9cc03f64b53bfbfee Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Tue, 11 Jun 2024 11:47:08 +0200 Subject: [PATCH] fix(aggreg): anticipate and handle delivery startup errors --- .../src/emqx_connector_aggregator.app.src | 2 +- .../src/emqx_connector_aggregator.erl | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.app.src b/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.app.src index 6562958ee..b79cba2b2 100644 --- a/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.app.src +++ b/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.app.src @@ -1,6 +1,6 @@ {application, emqx_connector_aggregator, [ {description, "EMQX Enterprise Connector Data Aggregator"}, - {vsn, "0.1.0"}, + {vsn, "0.1.1"}, {registered, []}, {applications, [ kernel, diff --git a/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl b/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl index f3936fd54..935fa6b52 100644 --- a/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl +++ b/apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl @@ -372,9 +372,13 @@ lookup_current_buffer(Name) -> %% enqueue_delivery(Buffer, St = #st{name = Name, deliveries = Ds}) -> - {ok, Pid} = emqx_connector_aggreg_upload_sup:start_delivery(Name, Buffer), - MRef = erlang:monitor(process, Pid), - St#st{deliveries = Ds#{MRef => Buffer}}. + case emqx_connector_aggreg_upload_sup:start_delivery(Name, Buffer) of + {ok, Pid} -> + MRef = erlang:monitor(process, Pid), + St#st{deliveries = Ds#{MRef => Buffer}}; + {error, _} = Error -> + handle_delivery_exit(Buffer, Error, St) + end. handle_delivery_exit(Buffer, Normal, St = #st{name = Name}) when Normal == normal; Normal == noproc