[OVSDB-162] NPE at org.opendaylight.ovsdb.openstack.netvirt.impl.SouthboundImpl.extractTerminationPointAugmentation(SouthboundImpl.java:387)[277:org.opendaylight.ovsdb.openstack.net-virt:1.1.0.SNAPSHOT] Created: 28/May/15 Updated: 19/Oct/17 Resolved: 01/Jun/15 |
|
| Status: | Resolved |
| Project: | ovsdb |
| Component/s: | Southbound.Open_vSwitch |
| Affects Version/s: | unspecified |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Flavio Fernandes | Assignee: | Unassigned |
| 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: | 3404 |
| Description |
|
while creating tenant VMs, I hit this NPE: 2015-05-27 23:24:18,092 | INFO | ntDispatcherImpl | OF13Provider | 278 - org.opendaylight.ovsdb.openstack.net-virt-providers - 1.1.0.SNAPSHOT | addTunnelPort enter: portName: vxlan-192.168.50.22 }}], 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://192.168.50.22:52848/bridge/br-int'], augmentations={}}], getBridgeName=OvsdbBridgeName [_value=br-int], getBridgeOpenflowNodeRef=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://192.168.50.1:6633]]]]}, getBridgeUuid=Uuid [_value=7cdf423c-a2cb-450a-975b-6122eaa1aff2], getControllerEntry=[ControllerEntry{getControllerUuid=Uuid [_value=6f0cde7c-fc45-43e9-9051-a72712b72709], getTarget=Uri [_value=tcp:192.168.50.1:6633], isIsConnected=true, augmentations={}}], getDatapathId=DatapathId [_value=00:00:3e:42:df:7c:0a:45], 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://192.168.50.22:52848]]]]}], getProtocolEntry=[ProtocolEntry{getProtocol=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow13, augmentations={}}]}}}] |
| Comments |
| Comment by Flavio Fernandes [ 28/May/15 ] |
|
https://gist.github.com/234db4f8614ed616140a floatTest1.txt log:set debug org.opendaylight.neutron #== source openrc admin admin keystone tenant-create --name=tenant1 --enabled=true 2> /dev/null keystone tenant-create --name=tenant2 --enabled=true 2> /dev/null IMG_ID=$(nova image-list | grep 'cirros-0.3..-x86_64-uec\s' | awk ' {print $2}')TNT1_ID=$(keystone tenant-list 2> /dev/null | grep '\s'tenant1'' | awk '{print $2} ') neutron net-create ext1 --router:external --tenant_id=${TNT1_ID} --provider:network_type flat \ --provider:physical_network physnetext1 neutron subnet-create --tenant_id=${TNT1_ID} \ --allocation-pool start=192.168.111.21,end=192.168.111.40 --gateway=192.168.111.254 \ --disable-dhcp --name subext1 ext1 192.168.111.0/24 neutron net-create ext2 --router:external --tenant_id=${TNT2_ID} --provider:network_type flat \ --provider:physical_network physnetext2 neutron subnet-create --tenant_id=${TNT2_ID} \ --allocation-pool start=192.168.111.41,end=192.168.111.60 --gateway=192.168.111.254 \ --disable-dhcp --name subext2 ext2 192.168.111.0/24 # – unset SERVICE_TOKEN SERVICE_ENDPOINT export OS_AUTH_URL=http://192.168.50.20:35357/v2.0/ export OS_REGION_NAME=RegionOne ####================= export OS_USERNAME=user1 export OS_TENANT_NAME=tenant1 export OS_PASSWORD=user1 export PS1='[\u@\h \W(keystone_user1)]\$ ' rm -f id_rsa_demo* ; ssh-keygen -t rsa -b 2048 -N '' -f id_rsa_demo > /dev/null nova keypair-add --pub-key id_rsa_demo.pub demo_key > /dev/null neutron router-create rtr1 neutron router-gateway-set rtr1 ext1 ## neutron net-create net1 --tenant-id $TNT1_ID --provider:network_type vxlan --provider:segmentation_id 256 > /dev/null neutron net-create net1 neutron subnet-create net1 10.1.0.0/24 --name subnet1 --dns-nameserver 192.168.111.254 neutron router-interface-add rtr1 subnet1 neutron net-create net2 neutron subnet-create net2 10.2.0.0/24 --name subnet2 --dns-nameserver 192.168.111.254 neutron router-interface-add rtr1 subnet2 NET1_ID=$(neutron net-list | grep -w net1 | awk '{print $2} ') ; echo "net1 $NET1_ID" nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET1_ID} vm1 nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET1_ID} vm2 nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET2_ID} vm3 nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET2_ID} vm4 for VMNAME in vm1 vm2 vm3 vm4 ; do \ # Floating ip create neutron floatingip-create ext1 FLOAT_IP=$(neutron floatingip-list | grep 192\.168\.111\. | grep -v 10\..\.0\. | head -1 | awk '{print $5}') echo "Assigning floating ip ${FLOAT_IP} to ${VMNAME}" nova floating-ip-associate ${VMNAME} ${FLOAT_IP} done ##------ export OS_USERNAME=user2 export OS_TENANT_NAME=tenant2 export OS_PASSWORD=user2 export PS1='[\u@\h \W(keystone_user2)]\$ ' rm -f id_rsa_demo* ; ssh-keygen -t rsa -b 2048 -N '' -f id_rsa_demo > /dev/null nova keypair-add --pub-key id_rsa_demo.pub demo_key > /dev/null neutron router-create rtr2 neutron router-gateway-set rtr2 ext2 neutron net-create net10 neutron subnet-create net10 10.10.0.0/24 --name subnet10 --dns-nameserver 192.168.111.254 neutron router-interface-add rtr2 subnet10 neutron net-create net20 neutron subnet-create net20 10.20.0.0/24 --name subnet20 --dns-nameserver 192.168.111.254 neutron router-interface-add rtr2 subnet20 NET10_ID=$(neutron net-list | grep -w net10 | awk '{print $2} ') ; echo "net10 $NET10_ID" ') ; echo "net20 $NET20_ID" nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET10_ID} vm5 for VMNAME in vm5 vm6 vm7 vm8 ; do \
|
| Comment by Flavio Fernandes [ 28/May/15 ] |
|
Yet another case of race condition?!? dstBridgeNode is null. So southbound.getBridgeNode(dstNode, Did not find bridgeNode from dstNode. – for (Node dstNode : nodes.values()) { CRASH ==> if (addTunnelPort(dstBridgeNode, networkType, dst, src)) { programTunnelRules(networkType, segmentationId, src, dstBridgeNode, intf, false); }} else { |
| Comment by Flavio Fernandes [ 28/May/15 ] |
|
Attachment karaf.log has been added with description: karaf.log |
| Comment by Flavio Fernandes [ 28/May/15 ] |