From 3d9c63c1bcf1247cf91388acebb4974928ec6ba3 Mon Sep 17 00:00:00 2001 From: Xumin <100666470+StarlightIbuki@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:47:11 +0800 Subject: [PATCH] fix(clustering/rpc): sync retry timeout due to block (#14195) KAG-6224 --- kong/clustering/services/sync/rpc.lua | 5 +++-- .../18-hybrid_rpc/09-notify_new_version_spec.lua | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/kong/clustering/services/sync/rpc.lua b/kong/clustering/services/sync/rpc.lua index 00fea1eead3..eef75795c51 100644 --- a/kong/clustering/services/sync/rpc.lua +++ b/kong/clustering/services/sync/rpc.lua @@ -27,6 +27,7 @@ local ipairs = ipairs local ngx_null = ngx.null local ngx_log = ngx.log local ngx_ERR = ngx.ERR +local ngx_WARN = ngx.WARN local ngx_INFO = ngx.INFO local ngx_DEBUG = ngx.DEBUG @@ -403,8 +404,8 @@ local function sync_once_impl(premature, retry_count) -- retry if the version is not updated retry_count = retry_count or 0 - if retry_count > MAX_RETRY then - ngx_log(ngx_ERR, "sync_once retry count exceeded. retry_count: ", retry_count) + if retry_count >= MAX_RETRY then + ngx_log(ngx_WARN, "sync_once retry count exceeded. retry_count: ", retry_count) return end diff --git a/spec/02-integration/18-hybrid_rpc/09-notify_new_version_spec.lua b/spec/02-integration/18-hybrid_rpc/09-notify_new_version_spec.lua index b803420d476..53c05d7f6f5 100644 --- a/spec/02-integration/18-hybrid_rpc/09-notify_new_version_spec.lua +++ b/spec/02-integration/18-hybrid_rpc/09-notify_new_version_spec.lua @@ -61,14 +61,16 @@ for _, strategy in helpers.each_strategy() do "no sync runs, version is " .. rep("0", 32), true, 10) assert.logfile(name).has.line( - "sync_once retry count exceeded. retry_count: 6", true, 10) + "sync_once retry count exceeded. retry_count: 5", true, 10) assert.logfile(name).has.no.line( "assertion failed", true, 0) + assert.logfile(name).has.no.line( + "[error]", true, 0) local name = nil -- cp logs - for i = 0, 6 do + for i = 0, 5 do assert.logfile(name).has.line( "kong.sync.v2.get_delta ok: " .. i, true, 10) end