From 68054fad7222656c7180f59e66ab885c59c4027b Mon Sep 17 00:00:00 2001 From: Xiaochen Wang Date: Tue, 12 Nov 2024 14:59:43 +0800 Subject: [PATCH] fix(sync): notify declarative:reconfigure events for full sync --- kong/clustering/services/sync/rpc.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kong/clustering/services/sync/rpc.lua b/kong/clustering/services/sync/rpc.lua index c0c2836b964..582bce6d4f4 100644 --- a/kong/clustering/services/sync/rpc.lua +++ b/kong/clustering/services/sync/rpc.lua @@ -7,6 +7,7 @@ local declarative = require("kong.db.declarative") local constants = require("kong.constants") local concurrency = require("kong.concurrency") local isempty = require("table.isempty") +local events = require("kong.runloop.events") local insert_entity_for_txn = declarative.insert_entity_for_txn @@ -327,6 +328,16 @@ local function do_sync() kong.core_cache:purge() kong.cache:purge() + -- Trigger other workers' callbacks like reconfigure_handler. + -- + -- Full sync could rebuild route, plugins and balancer route, so their + -- hashes are nil. + local reconfigure_data = { kong.default_workspace, nil, nil, nil, } + local ok, err = events.declarative_reconfigure_notify(reconfigure_data) + if not ok then + return nil, err + end + else for _, event in ipairs(crud_events) do -- delta_type, crud_event_type, delta.entity, old_entity