[OVSDB-201] NPE while programming Port Security ACL Created: 05/Sep/15 Updated: 03/May/18 Resolved: 12/Jan/16 |
|
| Status: | Resolved |
| Project: | ovsdb |
| Component/s: | openstack.net-virt |
| Affects Version/s: | unspecified |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Anil Vishnoi | Assignee: | Flavio Fernandes |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 4265 |
| Priority: | High |
| Description |
|
Getting following NPE in net-virt master branch code, when i spawn VM in the openstack : 2015-09-06 01:01:44,364 | ERROR | ntDispatcherImpl | OF13Provider | 260 - org.opendaylight.ovsdb.openstack.net-virt-providers - 1.2.1.SNAPSHOT | Exception in programming Local Rules for OvsdbTerminationPointAugmentation{getInterfaceExternalIds=[InterfaceExternalIds{getExternalIdKey=iface-id, getExternalIdValue=8a16117d-5a18-4df2-a0c0-7d01feb0591e, augmentations={}}, InterfaceExternalIds{getExternalIdKey=iface-status, getExternalIdValue=active, augmentations={}}, InterfaceExternalIds{getExternalIdKey=vm-id, getExternalIdValue=759b3724-8f0b-47aa-ba1b-43e7b680c5d8, augmentations={}}, InterfaceExternalIds{getExternalIdKey=attached-mac, getExternalIdValue=fa:16:3e:87:e3:34, augmentations={}}], getInterfaceUuid=Uuid [_value=f78dd6d1-9b2e-49c1-bdb4-532c6d330177], getName=tap8a16117d-5a, getOfport=2, getPortUuid=Uuid [_value=5f474252-5691-42a1-b623-3fbfa3897034]} on Node{getNodeId=Uri [_value=ovsdb:node4/bridge/br-int], getTerminationPoint=[TerminationPoint{getTpId=Uri [_value=br-int], augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation=OvsdbTerminationPointAugmentation {getInterfaceType=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal, getInterfaceUuid=Uuid [_value=9263b156-8c7d-4c80-b817-42b444627dca], getName=br-int, getOfport=65534, getPortUuid=Uuid [_value=36258dd6-65bd-4431-8009-8d5ba0c67b33]}}}, TerminationPoint{getTpId=Uri [_value=vxlan-192.168.201.128], augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation=OvsdbTerminationPointAugmentation{getInterfaceType=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan, getInterfaceUuid=Uuid [_value=cb814fc4-ea21-4f70-adf7-0e85f8a75f81], getName=vxlan-192.168.201.128, getOfport=1, getOptions=[Options{getOption=key, getValue=flow, augmentations={}}, Options{getOption=local_ip, getValue=192.168.201.129, augmentations={}}, Options{getOption=remote_ip, getValue=192.168.201.128, augmentations={}}], getPortExternalIds=[PortExternalIds{getExternalIdKey=opendaylight-iid, getExternalIdValue=/network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id='ovsdb:node4/bridge/br-int']/network-topology:termination-point[network-topology:tp-id='vxlan-192.168.201.128'], augmentations={}}], getPortUuid=Uuid [_value=00557250-6626-4e21-82d6-6d3cb088bb45]}}}, TerminationPoint{getTpId=Uri [_value=tap8a16117d-5a], augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation=OvsdbTerminationPointAugmentation{getInterfaceExternalIds=[InterfaceExternalIds{getExternalIdKey=iface-id, getExternalIdValue=8a16117d-5a18-4df2-a0c0-7d01feb0591e, augmentations={}}, InterfaceExternalIds{getExternalIdKey=iface-status, getExternalIdValue=active, augmentations={}}, InterfaceExternalIds{getExternalIdKey=vm-id, getExternalIdValue=759b3724-8f0b-47aa-ba1b-43e7b680c5d8, augmentations={}}, InterfaceExternalIds{getExternalIdKey=attached-mac, getExternalIdValue=fa:16:3e:87:e3:34, augmentations={}}], getInterfaceUuid=Uuid [_value=f78dd6d1-9b2e-49c1-bdb4-532c6d330177], getName=tap8a16117d-5a, getOfport=2, getPortUuid=Uuid [_value=5f474252-5691-42a1-b623-3fbfa3897034]}}}], augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation=OvsdbBridgeAugmentation{getBridgeExternalIds=[BridgeExternalIds{getBridgeExternalIdKey=opendaylight-iid, getBridgeExternalIdValue=/network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id='ovsdb:node4/bridge/br-int'], augmentations={}}], getBridgeName=OvsdbBridgeName [_value=br-int], getBridgeUuid=Uuid [_value=1c367214-749f-4cc8-b777-d5d0794cbc0c], getControllerEntry=[ControllerEntry{getControllerUuid=Uuid [_value=172e3e00-7734-43cd-a635-6e64022f3eec], getTarget=Uri [_value=tcp:192.168.57.1:6653], isIsConnected=true, augmentations={}}], getDatapathId=DatapathId [_value=00:00:16:72:36:1c:c8:4c], getDatapathType=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem, getFailMode=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbFailModeSecure, getManagedBy=OvsdbNodeRef [_value=KeyedInstanceIdentifier {targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=ovsdb:1]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=ovsdb:node4]]]]}], getProtocolEntry=[ProtocolEntry{getProtocol=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow13, augmentations={}}]}}} |
| Comments |
| Comment by Anil Vishnoi [ 05/Sep/15 ] |
|
Steps to recreate the issue: 1) Build ovsdb master code base and start the controller and you should see the above exception. |
| Comment by Anil Vishnoi [ 05/Sep/15 ] |
|
L2 connectivity breaks because all the required flows are not getting installed because of this exception. |
| Comment by Aswin Suryanarayanan [ 07/Sep/15 ] |
|
I am able to reproduce the issue with a custom security group, but not with the default. It seems to be a timing issue. The security group create is called along with a port create not when the SG is created from horizon. So there are chances that empty value is returned when port create tries to do retrieve the security group info in response to a Southbound Event. I am analyzing more on it. Will add a try catch to fix issue with other flows. |
| Comment by Flavio Fernandes [ 11/Sep/15 ] |
|
steps to reproduce: source openrc admin admin keystone tenant-create --name=tenant1 --enabled=true 2> /dev/null keystone user-create --name=user1 --pass=user1 --email=user1@example.com 2> /dev/null keystone user-role-add --user=user1 --role=member --tenant=tenant1 2> /dev/null TNT1_ID=$(keystone tenant-list 2> /dev/null | grep '\s'tenant1'' | awk ' {print $2}') neutron net-create ext1 --router:external --tenant_id=${TNT1_ID} \ |
| Comment by Flavio Fernandes [ 11/Sep/15 ] |
|
POST /controller/nb/v2/neutron/security-group-rules HTTP/1.1 { , , , { "remote_group_id": "70f1b157-e79b-44dc-85a8-7de0fc9f2aab", "direction": "ingress", "remote_ip_prefix": null, "protocol": null, "ethertype": "IPv4", "tenant_id": "2640ee2ac2474bf3906e482047204fcb", "port_range_max": null, "port_range_min": null, "id": "fbc3f809-7378-40a4-822f-7a70f6ccba98", "security_group_id": "70f1b157-e79b-44dc-85a8-7de0fc9f2aab" } ] <html> </body> |
| Comment by Flavio Fernandes [ 11/Sep/15 ] |
|
Attachment openstackTalk.cap has been added with description: tcpdump that shows the crash |
| Comment by Flavio Fernandes [ 11/Sep/15 ] |