From 26a57a00bbc73b3cc3081257bbdaf91e87773725 Mon Sep 17 00:00:00 2001 From: Zhongwen Deng Date: Tue, 31 May 2022 11:15:12 +0800 Subject: [PATCH] fix: cluster crash --- apps/emqx/src/emqx_metrics.erl | 16 +++++++++++----- apps/emqx_conf/etc/emqx_conf.conf | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/emqx/src/emqx_metrics.erl b/apps/emqx/src/emqx_metrics.erl index 529b1b431..8aabd7ac8 100644 --- a/apps/emqx/src/emqx_metrics.erl +++ b/apps/emqx/src/emqx_metrics.erl @@ -337,11 +337,17 @@ all() -> %% @doc Get metric value -spec val(metric_name()) -> non_neg_integer(). val(Name) -> - case ets:lookup(?TAB, Name) of - [#metric{idx = Idx}] -> - CRef = persistent_term:get(?MODULE), - counters:get(CRef, Idx); - [] -> + try + case ets:lookup(?TAB, Name) of + [#metric{idx = Idx}] -> + CRef = persistent_term:get(?MODULE), + counters:get(CRef, Idx); + [] -> + 0 + end + %% application will restart when join cluster, then ets not exist. + catch + error:badarg -> 0 end. diff --git a/apps/emqx_conf/etc/emqx_conf.conf b/apps/emqx_conf/etc/emqx_conf.conf index 7d608031d..6f5478c52 100644 --- a/apps/emqx_conf/etc/emqx_conf.conf +++ b/apps/emqx_conf/etc/emqx_conf.conf @@ -13,6 +13,7 @@ node { cookie: emqxsecretcookie data_dir: "{{ platform_data_dir }}" etc_dir: "{{ platform_etc_dir }}" + applications: "{{ emqx_machine_boot_apps }}" } log {