[NETVIRT-792] NPE at at org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler.lambda$onAddFloatingIp$0 Created: 18/Jul/17  Updated: 30/Oct/17  Resolved: 10/Aug/17

Status: Resolved
Project: netvirt
Component/s: General
Affects Version/s: Nitrogen
Fix Version/s: None

Type: Bug
Reporter: Janki Chhatbar Assignee: Karthikeyan Krishnan
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 8863

 Description   

2017-07-17 08:16:03,909 | ERROR | eChangeHandler-0 | VpnInterfaceManager | 319 - org.opendaylight.netvirt.vpnmanager-impl - 0.5.0.SNAPSHOT | Handling addition of VPN interface 83523c02-2362-4bfb-bedb-ec7bb904124b skipped as interfaceState is not available
2017-07-17 08:16:03,909 | WARN | nPool-1-worker-1 | InterfaceConfigListener | 231 - org.opendaylight.genius.interfacemanager-impl - 0.3.0.SNAPSHOT | parent refs not specified for 83523c02-2362-4bfb-bedb-ec7bb904124b
2017-07-17 08:16:03,907 | ERROR | eChangeHandler-0 | VpnFloatingIpHandler | 307 - org.opendaylight.netvirt.natservice-impl - 0.5.0.SNAPSHOT | Error in generate label or fib install process
java.lang.NullPointerException: Supplied value may not be null
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:799)[27:com.google.guava:22.0.0]
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress.<init>(MacAddress.java:50)[280:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.11_0-SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler.lambda$onAddFloatingIp$0(VpnFloatingIpHandler.java:194)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:211)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:200)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:130)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:911)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:645)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:101)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.AbstractTransformFuture.create(AbstractTransformFuture.java:40)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.Futures.transformAsync(Futures.java:557)[27:com.google.guava:22.0.0]
at org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler.onAddFloatingIp(VpnFloatingIpHandler.java:166)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.createNATFlowEntries(FloatingIPListener.java:446)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.processFloatingIPAdd(FloatingIPListener.java:363)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.add(FloatingIPListener.java:104)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.add(FloatingIPListener.java:62)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:157)[237:org.opendaylight.genius.mdsalutil-api:0.3.0.SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-07-17 08:16:03,918 | ERROR | eChangeHandler-0 | VpnFloatingIpHandler | 307 - org.opendaylight.netvirt.natservice-impl - 0.5.0.SNAPSHOT | Failed to send GARP request for floating ip 10.10.10.10 from interface 114694296531861:br-physnet1-pa:trunk
java.lang.NullPointerException: Supplied value may not be null
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:799)[27:com.google.guava:22.0.0]
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress.<init>(PhysAddress.java:52)[280:org.opendaylight.mdsal.model.ietf-yang-types-20130715:2013.7.15.11_0-SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler.sendGarpOnInterface(VpnFloatingIpHandler.java:462)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.VpnFloatingIpHandler.onAddFloatingIp(VpnFloatingIpHandler.java:245)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.createNATFlowEntries(FloatingIPListener.java:446)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.processFloatingIPAdd(FloatingIPListener.java:363)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.add(FloatingIPListener.java:104)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.netvirt.natservice.internal.FloatingIPListener.add(FloatingIPListener.java:62)[307:org.opendaylight.netvirt.natservice-impl:0.5.0.SNAPSHOT]
at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:157)[237:org.opendaylight.genius.mdsalutil-api:0.3.0.SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]



 Comments   
Comment by Karthikeyan Krishnan [ 18/Jul/17 ]

Will start look into this issue

Comment by Sridhar Gaddam [ 18/Jul/17 ]

Similar exceptions are seen on stable/carbon branch.

Comment by Karthikeyan Krishnan [ 19/Jul/17 ]

Working on the fix to provide solution for this reported problem.

Comment by Karthikeyan Krishnan [ 19/Jul/17 ]

Please refer the below link for code review in master (nitrogen) branch

https://git.opendaylight.org/gerrit/#/c/60554/

Comment by Karthikeyan Krishnan [ 10/Aug/17 ]

Hi All,

Unfortunately I couldn’t able to re-produce the issue locally. I have observed this issue is not consistently happened for one test case alone. Instead it happens for many test case (tempest) ran. Have observed the following build has Floating IP NPE exception problem starting from Build #131 to #166.

#144
https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-nitrogen/144/log.html.gz

Even though Floating IP NPE exception was occurred this build, there is no failures in TC (100% Passed)

Issue reported build: #131

After the issue reported build #131, have seen the same issue is occurring on following build till now.
https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-nitrogen/

#150
TC Name: tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_slaac_from_os
#154
TC Name: tempest.scenario.test_network_v6.TestGettingAddress.test_dhcp6_stateless_from_os
#155
TC Name: tempest.scenario.test_network_advanced_server_ops.TestNetworkAdvancedServerOps.test_server_connectivity_pause_unpause

Please help/guide us how to proceed further on this issue to get RCA.

Thanks & Regards,
Karthikeyan.

Comment by Karthikeyan Krishnan [ 10/Aug/17 ]

Fix has been merged into both Master (ODL-Nitrogen) and Stable/Carbon.

Please refer the below link for Master (ODL-Nitrogen) release.
https://git.opendaylight.org/gerrit/#/c/60554/

Please refer the below link for Stable/Carbon (SR2) release.
https://git.opendaylight.org/gerrit/#/c/61471/

Note:
We couldn't identify the RCA for why FIP MAC information is missing from the DS. Since we could't able to re-produce the issue at locally to capture all the required debug logs. To fixing this issue, have provided the solution as if FIP MAC address is empty for some reason, simply avoided the sub-sequence DNAT flow installation for safer side. With this confirmation resolving this bug.

Generated at Wed Feb 07 20:22:29 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.