Bug 7126 - legacy netvirt: null pointer exception NeutronSubnetInterface.fromMd 49/48149/3
authorIsaku Yamahata <isaku.yamahata@intel.com>
Wed, 9 Nov 2016 03:55:32 +0000 (19:55 -0800)
committerSam Hague <shague@redhat.com>
Sat, 12 Nov 2016 14:11:57 +0000 (14:11 +0000)
With openstack CI, legacy netvirt spits the following null pointer
exception.

> 2016-11-08 09:15:31,792 | ERROR | ntDispatcherImpl | TenantNetworkManagerImpl         | 336 - org.opendaylight.netvirt.openstack.net-virt - 1.4.0.SNAPSHOT | getDHCPServerPort:getDHCPServerPort failed due to
> java.lang.NullPointerException
>         at org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronSubnetInterface.fromMd(NeutronSubnetInterface.java:178)
>         at org.opendaylight.netvirt.openstack.netvirt.translator.crud.impl.NeutronSubnetInterface.getSubnet(NeutronSubnetInterface.java:84)
>         at org.opendaylight.netvirt.openstack.netvirt.impl.SecurityServicesImpl.getDhcpServerPort(SecurityServicesImpl.java:164)
>         at org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.OF13Provider.programLocalSecurityGroupRules(OF13Provider.java:1056)
>         at org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.OF13Provider.programLocalRules(OF13Provider.java:814)
>         at org.opendaylight.netvirt.openstack.netvirt.providers.openflow13.OF13Provider.handleInterfaceUpdate(OF13Provider.java:1194)
>         at org.opendaylight.netvirt.openstack.netvirt.SouthboundHandler.handleInterfaceUpdate(SouthboundHandler.java:101)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at org.opendaylight.netvirt.openstack.netvirt.SouthboundHandler.processPortUpdate(SouthboundHandler.java:343)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at org.opendaylight.netvirt.openstack.netvirt.SouthboundHandler.processPortEvent(SouthboundHandler.java:329)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at org.opendaylight.netvirt.openstack.netvirt.SouthboundHandler.processEvent(SouthboundHandler.java:274)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at org.opendaylight.netvirt.openstack.netvirt.impl.EventDispatcherImpl.dispatchEvent(EventDispatcherImpl.java:96)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at org.opendaylight.netvirt.openstack.netvirt.impl.EventDispatcherImpl.lambda$start$0(EventDispatcherImpl.java:58)[336:org.opendaylight.netvirt.openstack.net-virt:1.4.0.SNAPSHOT]
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_91]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_91]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_91]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_91]
>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_91]

Change-Id: Id02d8e4f76c2394b6e765e7dfb92e66693051769
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
(cherry picked from commit 97990d76bb26431039295f3d7d9c1b31512ee959)

openstack/net-virt/src/main/java/org/opendaylight/netvirt/openstack/netvirt/translator/crud/impl/NeutronSubnetInterface.java

index a8ed9250abe96aa02aea9dec9e02bf5fc50c3f60..ae5f139edc0ee29dc709b684f99768445257f71e 100644 (file)
@@ -175,7 +175,9 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
         for (NeutronPort port : portIf.getAllPorts()) {
             if (port.getDeviceOwner().equalsIgnoreCase("network:router_interface") ||
                 port.getDeviceOwner().equalsIgnoreCase("network:router_gateway")) {
-                result.setGatewayIP(String.valueOf(subnet.getGatewayIp().getValue()));
+                if (subnet.getGatewayIp() != null) {
+                    result.setGatewayIP(String.valueOf(subnet.getGatewayIp().getValue()));
+                }
             }
             if (port.getFixedIPs() != null) {
                 for (Neutron_IPs ip : port.getFixedIPs()) {