CSIT FIX for ARP LEARNING TC FAILURE 21/86821/1
authorKarthikeyan Krishnan <karthikeyangceb007@gmail.com>
Thu, 9 Jan 2020 09:45:05 +0000 (15:15 +0530)
committerKarthikeyan Krishnan <karthikeyangceb007@gmail.com>
Thu, 9 Jan 2020 09:49:27 +0000 (15:19 +0530)
Issue:
======
New exceptions found: 1
[{'warnerr_list': [25, 38], 'lines': [u'2020-01-09T07:54:19,764 | ERROR |
jobcoordinator-main-task-17 | VpnInterfaceManager              | 370 -
org.opendaylight.netvirt.vpnmanager-impl - 0.10.0.SNAPSHOT | Failed to add
adjacency Adjacency{getAdjacencyType=LearntIp,
getIpAddress=192.168.10.110/32, getNextHopIpList=[10.10.10.6],
isPhysNetworkFunc=false, augmentation=[]} to vpn interface
54f54a7d-c251-4a43-a7a7-48ee14d12bad with dpnId 53790057429703',
u'java.lang.UnsupportedOperationException: null', u'\tat
com.google.common.collect.ImmutableCollection.removeAll(ImmutableCollection.java:283)
~[35:com.google.guava:27.1.0.jre]', u'\tat
org.opendaylight.netvirt.vpnmanager.VpnUtil.allocateRdForExtraRouteAndUpdateUsedRdsMap(VpnUtil.java:1560)
~[?:?]', u'\tat
org.opendaylight.netvirt.vpnmanager.VpnInterfaceManager.addNewAdjToVpnInterface(VpnInterfaceManager.java:1975)
~[?:?]', u'\tat
org.opendaylight.netvirt.vpnmanager.VpnInterfaceManager.lambda$updateVpnInstanceAdjChange$19(VpnInterfaceManager.java:1817)
~[?:?]', u'\tat

Solution:
=========
Have fixed the code to avoid the exception

Signed-off-by: Karthikeyan Krishnan <karthikeyangceb007@gmail.com>
Change-Id: I01a194a27b217fd30e3bca8aeab7652cb05ca06c

vpnmanager/impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java

index 03b4e121ae75bd2cfc07efc65228e14548071866..e0979ae7cd5b50e328cab29206a70f4bbe73326d 100644 (file)
@@ -1557,7 +1557,7 @@ public final class VpnUtil {
         } else {
             LOG.trace("Removing used rds {} from available rds {} vpnid {} . prefix is {} , vpname- {}, dpnId- {}",
                     usedRds, availableRds, vpnId, prefix, vpnName, dpnId);
-            if (usedRds != null || !usedRds.isEmpty()) {
+            if (!usedRds.isEmpty()) {
                 availableRds.removeAll(usedRds);
             }
             if (availableRds.isEmpty()) {