From 92bd989092e5b17b2573c627c27b0b6e58f14f84 Mon Sep 17 00:00:00 2001 From: zstack Date: Tue, 12 May 2026 19:21:35 -0700 Subject: [PATCH] =?UTF-8?q?[host]:=20SystemTagCreator=20ignoreIfExist?= =?UTF-8?q?ing=20=E9=98=B2=E9=87=8D=E8=BF=9E=E6=A0=87=E7=AD=BE=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updateHostConnectedTime 中 check-then-act 存在竞态窗口: 并发重连时 两线程同时读到 !tagExists, 第二个 SystemTagCreator.create() 因 unique=true 抛异常。设置 ignoreIfExisting=true 使重复创建静默跳过。 Resolves: ZSTAC-58237 Co-Authored-By: Claude Opus 4.7 --- compute/src/main/java/org/zstack/compute/host/HostBase.java | 1 + 1 file changed, 1 insertion(+) diff --git a/compute/src/main/java/org/zstack/compute/host/HostBase.java b/compute/src/main/java/org/zstack/compute/host/HostBase.java index 919d92631fc..2f105c947e6 100755 --- a/compute/src/main/java/org/zstack/compute/host/HostBase.java +++ b/compute/src/main/java/org/zstack/compute/host/HostBase.java @@ -1099,6 +1099,7 @@ private void updateHostConnectedTime(HostStatus hostStatus) { creator.setTagByTokens(Collections.singletonMap(token, connectedTime)); creator.inherent = false; creator.recreate = false; + creator.ignoreIfExisting = true; creator.create(); return; }