[OVSDB-351] Southbound plugin throws IllegalStateException when add bridge config via POST Created: 30/Jun/16  Updated: 25/Jul/16  Resolved: 25/Jul/16

Status: Resolved
Project: ovsdb
Component/s: Southbound.Open_vSwitch
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Vinh Nguyen Assignee: Vinothkumar
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File karaf.log    
External issue ID: 6136

 Description   

This problem is found in this distribution:
distribution-karaf-0.4.3-20160629.175000-418

Creating a bridge with termination points in config DS result in IllegalStateException:

2016-06-30 09:34:05,578 | INFO | on-dispatcher-36 | ControllerUpdateCommand | 253 - org.opendaylight.ovsdb.southbound-impl - 1.2.4.SNAPSHOT | execute: controllers: {KeyedInstanceIdentifier

{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry, 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://a1481fd6-bd18-437b-b015-7623c76e1bdf/bridge/brtest5]]], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry[key=ControllerEntryKey [_target=Uri [_value=tcp:155.53.188.17:6653]]]]}

=ControllerEntry{getTarget=Uri [_value=tcp:155.53.188.17:6653], augmentations={}}} — bridges: {InstanceIdentifier

{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation, 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://a1481fd6-bd18-437b-b015-7623c76e1bdf/bridge/brtest5]]], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation]}

=OvsdbBridgeAugmentation{getBridgeName=OvsdbBridgeName [_value=brtest5], getBridgeOtherConfigs=[BridgeOtherConfigs{getBridgeOtherConfigKey=disable-in-band, getBridgeOtherConfigValue=true, augmentations={}}], getControllerEntry=[ControllerEntry{getTarget=Uri [_value=tcp:155.53.188.17:6653], augmentations={}}], 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://a1481fd6-bd18-437b-b015-7623c76e1bdf]]]]}

], getProtocolEntry=[ProtocolEntry{getProtocol=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeProtocolOpenflow13, augmentations={}}]}}
2016-06-30 09:34:05,582 | INFO | on-dispatcher-36 | ControllerUpdateCommand | 253 - org.opendaylight.ovsdb.southbound-impl - 1.2.4.SNAPSHOT | execute: bridge: Bridge : Row [columns=

{controller=[controller=[Random_036f6e5decbb4434bd39ac2e89b6aa48]], name=[name=brtest5]}

]
2016-06-30 09:34:05,582 | INFO | on-dispatcher-36 | ControllerUpdateCommand | 253 - org.opendaylight.ovsdb.southbound-impl - 1.2.4.SNAPSHOT | execute: transaction: [Operation [op=insert, result=null], Operation [op=insert, result=null], Operation [op=insert, result=null], Operation [op=mutate, result=null], Operation [op=insert, result=null], Operation [op=mutate, result=null]]
2016-06-30 09:34:05,616 | ERROR | on-dispatcher-36 | DataTreeChangeListenerActor | 166 - org.opendaylight.controller.sal-distributed-datastore - 1.3.3.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingClusteredDOMDataTreeChangeListenerAdapter@41ea84bb
java.lang.IllegalStateException: Optional.get() cannot be called on an absent value
at com.google.common.base.Absent.get(Absent.java:47)[64:com.google.guava:18.0.0]
at org.opendaylight.ovsdb.southbound.ovsdb.transact.TerminationPointUpdateCommand.updateTerminationPoint(TerminationPointUpdateCommand.java:111)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.ovsdb.transact.TerminationPointUpdateCommand.execute(TerminationPointUpdateCommand.java:84)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.ovsdb.transact.TerminationPointUpdateCommand.execute(TerminationPointUpdateCommand.java:74)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.ovsdb.transact.TransactCommandAggregator.execute(TransactCommandAggregator.java:65)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.ovsdb.transact.TransactInvokerImpl.invoke(TransactInvokerImpl.java:47)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance.transact(OvsdbConnectionInstance.java:114)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.updateData(OvsdbDataTreeChangeListener.java:180)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.onDataTreeChanged(OvsdbDataTreeChangeListener.java:92)[253:org.opendaylight.ovsdb.southbound-impl:1.2.4.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)[141:org.opendaylight.controller.sal-binding-broker-impl:1.3.3.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)[166:org.opendaylight.controller.sal-distributed-datastore:1.3.3.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)[166:org.opendaylight.controller.sal-distributed-datastore:1.3.3.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)[162:org.opendaylight.controller.sal-clustering-commons:1.3.3.SNAPSHOT]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)[151:com.typesafe.akka.actor:2.3.14]
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[151:com.typesafe.akka.actor:2.3.14]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)[151:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[151:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[151:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[151:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.run(Mailbox.scala:220)[151:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[151:com.typesafe.akka.actor:2.3.14]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[148:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[148:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[148:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[148:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
2016-06-30 09:39:26,563 | WARN | ssionScavenger-4 | teInvalidatingHashSessionManager | 195 - org.ops4j.pax.web.pax-web-jetty - 3.1.4 | Timing out for 1 session(s) with id xszdrjv9fds0lio590nsql9h

The postman json for the bridge+termination point below:
url:
http://CONTROLLER-IP:8181/restconf/operational/network-topology:network-topology/topology/ovsdb:1/

Content
{
"node": [
{
"node-id": "ovsdb://HYPERVISOR-NODE-ID/bridge/brtest5",
"ovsdb:controller-entry": [

{ "target": "tcp:155.53.188.17:6653" }

],
"ovsdb:fail-mode": "ovsdb:ovsdb-fail-mode-secure",
"ovsdb:managed-by": "/network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id='ovsdb://{{HYPERVISOR-NODE-ID}}']",
"ovsdb:bridge-other-configs": [

{ "bridge-other-config-key": "disable-in-band", "bridge-other-config-value": "true" }

],
"ovsdb:protocol-entry": [

{ "protocol": "ovsdb:ovsdb-bridge-protocol-openflow-13" }

],
"ovsdb:bridge-name": "brtest5",
"termination-point": [
{
"tp-id": "testport5",
"ovsdb:vlan-tag": 2,
"ovsdb:vlan-mode": "access",
"ovsdb:interface-type": "ovsdb:interface-type-vxlan",
"ovsdb:options": [

{ "option": "remote_ip", "value": "10.10.14.11" }

],
"ovsdb:name": "testport5",
"ovsdb:trunks": [

{ "trunk": 6 }

]
},

{
"tp-id": "testport5a",
"ovsdb:vlan-tag": 2,
"ovsdb:vlan-mode": "access",
"ovsdb:interface-type": "ovsdb:interface-type-vxlan",
"ovsdb:options": [

{ "option": "remote_ip", "value": "10.10.14.11" }

],
"ovsdb:name": "testport5a",
"ovsdb:trunks": [

{ "trunk": 6 }

]
}
]
}
]
}



 Comments   
Comment by Vinh Nguyen [ 30/Jun/16 ]

Attachment karaf.log has been added with description: karaf.log

Comment by Vinothkumar [ 25/Jul/16 ]

Master:
https://git.opendaylight.org/gerrit/#/c/42332/
Stable/Beryllium:
https://git.opendaylight.org/gerrit/#/c/42042/

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