Просмотр исходного кода

Merge pull request #10484 from zhongwencool/fix-copy-conf

fix: copy cluster-override.conf from old version
zhongwencool 2 лет назад
Родитель
Сommit
22d6a2eaee
3 измененных файлов с 19 добавлено и 3 удалено
  1. 1 1
      apps/emqx_conf/src/emqx_conf.app.src
  2. 15 2
      apps/emqx_conf/src/emqx_conf_app.erl
  3. 3 0
      changes/ce/fix-10484.en.md

+ 1 - 1
apps/emqx_conf/src/emqx_conf.app.src

@@ -1,6 +1,6 @@
 {application, emqx_conf, [
 {application, emqx_conf, [
     {description, "EMQX configuration management"},
     {description, "EMQX configuration management"},
-    {vsn, "0.1.17"},
+    {vsn, "0.1.18"},
     {registered, []},
     {registered, []},
     {mod, {emqx_conf_app, []}},
     {mod, {emqx_conf_app, []}},
     {applications, [kernel, stdlib, emqx_ctl]},
     {applications, [kernel, stdlib, emqx_ctl]},

+ 15 - 2
apps/emqx_conf/src/emqx_conf_app.erl

@@ -66,7 +66,8 @@ get_override_config_file() ->
                             conf => Conf,
                             conf => Conf,
                             tnx_id => TnxId,
                             tnx_id => TnxId,
                             node => Node,
                             node => Node,
-                            has_deprecated_file => HasDeprecateFile
+                            has_deprecated_file => HasDeprecateFile,
+                            release => emqx_app:get_release()
                         }
                         }
                     end,
                     end,
                     case mria:ro_transaction(?CLUSTER_RPC_SHARD, Fun) of
                     case mria:ro_transaction(?CLUSTER_RPC_SHARD, Fun) of
@@ -175,11 +176,13 @@ copy_override_conf_from_core_node() ->
                 _ ->
                 _ ->
                     [{ok, Info} | _] = lists:sort(fun conf_sort/2, Ready),
                     [{ok, Info} | _] = lists:sort(fun conf_sort/2, Ready),
                     #{node := Node, conf := RawOverrideConf, tnx_id := TnxId} = Info,
                     #{node := Node, conf := RawOverrideConf, tnx_id := TnxId} = Info,
-                    HasDeprecatedFile = maps:get(has_deprecated_file, Info, false),
+                    HasDeprecatedFile = has_deprecated_file(Info),
                     ?SLOG(debug, #{
                     ?SLOG(debug, #{
                         msg => "copy_cluster_conf_from_core_node_success",
                         msg => "copy_cluster_conf_from_core_node_success",
                         node => Node,
                         node => Node,
                         has_deprecated_file => HasDeprecatedFile,
                         has_deprecated_file => HasDeprecatedFile,
+                        local_release => emqx_app:get_release(),
+                        remote_release => maps:get(release, Info, "before_v5.0.24|e5.0.3"),
                         data_dir => emqx:data_dir(),
                         data_dir => emqx:data_dir(),
                         tnx_id => TnxId
                         tnx_id => TnxId
                     }),
                     }),
@@ -227,3 +230,13 @@ sync_data_from_node(Node) ->
             ?SLOG(emergency, #{node => Node, msg => "sync_data_from_node_failed", reason => Error}),
             ?SLOG(emergency, #{node => Node, msg => "sync_data_from_node_failed", reason => Error}),
             error(Error)
             error(Error)
     end.
     end.
+
+has_deprecated_file(#{conf := Conf} = Info) ->
+    case maps:find(has_deprecated_file, Info) of
+        {ok, HasDeprecatedFile} ->
+            HasDeprecatedFile;
+        error ->
+            %% The old version don't have emqx_config:has_deprecated_file/0
+            %% Conf is not empty if deprecated file is found.
+            Conf =/= #{}
+    end.

+ 3 - 0
changes/ce/fix-10484.en.md

@@ -0,0 +1,3 @@
+Fix the issue that the priority of the configuration cannot be set during rolling upgrade.
+For example, when authorization is modified in v5.0.21 and then upgraded v5.0.23 through rolling upgrade,
+the authorization will be restored to the default.