From 874bcd9a8b380f44159272235135f3dcb8b8d988 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Fri, 24 May 2024 10:20:50 +0800 Subject: [PATCH] fix: match decode plugin config map failed case --- apps/emqx_plugins/src/emqx_plugins.erl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/emqx_plugins/src/emqx_plugins.erl b/apps/emqx_plugins/src/emqx_plugins.erl index 42372f2ec..e1eb6d771 100644 --- a/apps/emqx_plugins/src/emqx_plugins.erl +++ b/apps/emqx_plugins/src/emqx_plugins.erl @@ -1235,8 +1235,7 @@ ensure_config_map(NameVsn) -> {ok, ConfigJsonMap} -> case with_plugin_avsc(NameVsn) of true -> - {ok, AvroValue} = decode_plugin_config_map(NameVsn, ConfigJsonMap), - put_config(NameVsn, ConfigJsonMap, AvroValue); + do_ensure_config_map(NameVsn, ConfigJsonMap); false -> put_config(NameVsn, ConfigJsonMap, ?plugin_without_config_schema) end; @@ -1245,6 +1244,19 @@ ensure_config_map(NameVsn) -> ok end. +do_ensure_config_map(NameVsn, ConfigJsonMap) -> + case decode_plugin_config_map(NameVsn, ConfigJsonMap) of + {ok, AvroValue} -> + put_config(NameVsn, ConfigJsonMap, AvroValue); + {error, Reason} -> + ?SLOG(error, #{ + msg => "plugin_config_validation_failed", + name_vsn => NameVsn, + reason => Reason + }), + ok + end. + %% @private Backup the current config to a file with a timestamp suffix and %% then save the new config to the config file. backup_and_write_hocon_bin(NameVsn, HoconBin) ->