From e726ee1c0f06a6571abe590daffd1cde9bd6e22d Mon Sep 17 00:00:00 2001 From: "boce.wang" Date: Fri, 26 Dec 2025 18:44:34 +0800 Subject: [PATCH] [virtualRouterProvider]: fix backup lb vip refresh Resolves: ZSTAC-80998 Change-Id: I6868776c19a1b8f5da7446b2a72bfbe1b4a483b8 --- .../virtualrouter/lb/VirtualRouterLoadBalancerBackend.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/lb/VirtualRouterLoadBalancerBackend.java b/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/lb/VirtualRouterLoadBalancerBackend.java index 3ee3d33449f..157ce8e71e6 100755 --- a/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/lb/VirtualRouterLoadBalancerBackend.java +++ b/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/lb/VirtualRouterLoadBalancerBackend.java @@ -661,7 +661,7 @@ private List makeLbTOs(final LoadBalancerStruct struct, VirtualRouterVmInv VipInventory vipInUsed = vip == null ? vip6 : vip; VmNicInventory publicNic = null; - if (vr != null) { + if (vr != null && vipInUsed != null) { List nics = vr.getVmNics().stream() .filter(n -> StringUtils.equals(n.getL3NetworkUuid(), vipInUsed.getL3NetworkUuid())) .collect(Collectors.toList()); @@ -2763,6 +2763,10 @@ public void callBack(String vrUuid, VirtualRouterHaTask task, Completion complet } LoadBalancerStruct s = JSONObjectUtil.toObject(task.getJsonData(), LoadBalancerStruct.class); + logger.debug(String.format("Refreshing LB[uuid:%s] on backup VR[uuid:%s], clearing VIP to avoid dual-master", + s.getLb().getUuid(), vrUuid)); + s.setVip(null); + s.setIpv6Vip(null); refreshLbToVirtualRouter(VirtualRouterVmInventory.valueOf(vrVO), s, completion); } };