membphis commented on code in PR #12800:
URL: https://github.com/apache/apisix/pull/12800#discussion_r2667723159


##########
apisix/plugin.lua:
##########
@@ -1263,7 +1267,45 @@ function _M.set_plugins_meta_parent(plugins, parent)
 end
 
 
-function _M.run_global_rules(api_ctx, global_rules, phase_name)
+local function merge_global_rules(global_rules, conf_version)
+    -- First pass: identify duplicate plugins across all global rules
+    local plugins_hash = {}
+    local seen_plugin = {}
+    local values = global_rules
+    for _, global_rule in config_util.iterate_values(values) do
+        if global_rule.value and global_rule.value.plugins then
+            for plugin_name, plugin_conf in pairs(global_rule.value.plugins) do
+                if seen_plugin[plugin_name] then
+                    core.log.warn("Found ", plugin_name,

Review Comment:
   we should use `error` log level



##########
apisix/plugin.lua:
##########
@@ -1263,7 +1267,45 @@ function _M.set_plugins_meta_parent(plugins, parent)
 end
 
 
-function _M.run_global_rules(api_ctx, global_rules, phase_name)
+local function merge_global_rules(global_rules, conf_version)
+    -- First pass: identify duplicate plugins across all global rules
+    local plugins_hash = {}
+    local seen_plugin = {}
+    local values = global_rules
+    for _, global_rule in config_util.iterate_values(values) do
+        if global_rule.value and global_rule.value.plugins then
+            for plugin_name, plugin_conf in pairs(global_rule.value.plugins) do
+                if seen_plugin[plugin_name] then
+                    core.log.warn("Found ", plugin_name,

Review Comment:
   it is an important error message



##########
apisix/plugin.lua:
##########
@@ -1263,7 +1267,45 @@ function _M.set_plugins_meta_parent(plugins, parent)
 end
 
 
-function _M.run_global_rules(api_ctx, global_rules, phase_name)
+local function merge_global_rules(global_rules, conf_version)
+    -- First pass: identify duplicate plugins across all global rules
+    local plugins_hash = {}
+    local seen_plugin = {}
+    local values = global_rules
+    for _, global_rule in config_util.iterate_values(values) do
+        if global_rule.value and global_rule.value.plugins then
+            for plugin_name, plugin_conf in pairs(global_rule.value.plugins) do
+                if seen_plugin[plugin_name] then
+                    core.log.warn("Found ", plugin_name,

Review Comment:
   if we used one plugin about 3 or 5 times
   
   we should throw an error in this case
   
   current way seems wrong



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to