From 1d3b8309e92846136e9c41b49f6bcb55827ebdf1 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Wed, 27 Sep 2017 15:23:53 +0200 Subject: [PATCH] Bug 9048: Vpp node reconnect bug in oxygen due to cache mechanism which was only adding Databroker to cache and not removing it on delete, we hit issues when reconnecting the same node, because of wrong Databroker. Change-Id: I5792256ff6d8e5d419360c7498551dc5e6e473a6 Signed-off-by: Michal Cmarada --- .../renderer/vpp/manager/VppNodeManager.java | 1 + .../renderer/vpp/util/MountedDataBrokerProvider.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppNodeManager.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppNodeManager.java index 3d183b0c5..f486a9ea5 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppNodeManager.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppNodeManager.java @@ -260,6 +260,7 @@ public class VppNodeManager { final CheckedFuture checkedFuture = wTx.submit(); try { checkedFuture.checkedGet(); + mountProvider.deleteDataBrokerForMountPoint(mountPointIid); return Futures.immediateFuture(cause); } catch (TransactionCommitFailedException e) { final String message = String.format("Failed to resolve disconnected node %s", node.getNodeId().getValue()); diff --git a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/MountedDataBrokerProvider.java b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/MountedDataBrokerProvider.java index ffc2fa653..96c3cb169 100644 --- a/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/MountedDataBrokerProvider.java +++ b/renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/util/MountedDataBrokerProvider.java @@ -9,6 +9,7 @@ package org.opendaylight.groupbasedpolicy.renderer.vpp.util; import java.util.AbstractMap; +import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -109,4 +110,8 @@ public class MountedDataBrokerProvider { }; return executorService.submit(task); } + + public void deleteDataBrokerForMountPoint(InstanceIdentifier mountPointIid) { + VbdNetconfTransaction.NODE_DATA_BROKER_MAP.remove(mountPointIid); + } } -- 2.36.6