瀏覽代碼

chore: ensure the module is loaded

zhongwencool 1 年之前
父節點
當前提交
0dfa3e8c86

+ 1 - 1
apps/emqx/src/emqx.erl

@@ -203,7 +203,7 @@ update_config(KeyPath, UpdateReq) ->
 -spec update_config(
     emqx_utils_maps:config_key_path(),
     emqx_config:update_request(),
-    emqx_config:cluster_rpc_opts()
+    emqx_config:update_opts()
 ) ->
     {ok, emqx_config:update_result()} | {error, emqx_config:update_error()}.
 update_config(KeyPath, UpdateReq, Opts) ->

+ 5 - 1
apps/emqx/src/emqx_config_handler.erl

@@ -852,7 +852,9 @@ assert_callback_function(Mod) ->
     _ = apply(Mod, module_info, []),
     case
         erlang:function_exported(Mod, pre_config_update, 3) orelse
-            erlang:function_exported(Mod, post_config_update, 5)
+            erlang:function_exported(Mod, post_config_update, 5) orelse
+            erlang:function_exported(Mod, pre_config_update, 4) orelse
+            erlang:function_exported(Mod, post_config_update, 6)
     of
         true -> ok;
         false -> error(#{msg => "bad_emqx_config_handler_callback", module => Mod})
@@ -899,6 +901,8 @@ save_handlers(Handlers) ->
 get_function_arity(_Module, _Callback, []) ->
     false;
 get_function_arity(Module, Callback, [Arity | Opts]) ->
+    %% ensure module is loaded
+    Module = Module:module_info(module),
     case erlang:function_exported(Module, Callback, Arity) of
         true -> Arity;
         false -> get_function_arity(Module, Callback, Opts)

+ 1 - 1
apps/emqx_resource/src/emqx_resource.erl

@@ -338,7 +338,7 @@ remove_local(ResId) ->
             ok
     end.
 
-%% Tip: Don't delete reset_metrics_local/1, use before v571 rpc
+%% Tip: Don't delete reset_metrics_local/1, use before v572 rpc
 -spec reset_metrics_local(resource_id()) -> ok.
 reset_metrics_local(ResId) ->
     reset_metrics_local(ResId, #{}).

+ 1 - 1
apps/emqx_rule_engine/src/emqx_rule_engine.erl

@@ -303,7 +303,7 @@ maybe_add_metrics_for_rule(Id) ->
 clear_metrics_for_rule(Id) ->
     ok = emqx_metrics_worker:clear_metrics(rule_metrics, Id).
 
-%% Tip: Don't delete reset_metrics_for_rule/1, use before v571 rpc
+%% Tip: Don't delete reset_metrics_for_rule/1, use before v572 rpc
 -spec reset_metrics_for_rule(rule_id()) -> ok.
 reset_metrics_for_rule(Id) ->
     reset_metrics_for_rule(Id, #{}).