Uploaded image for project: 'ovsdb'
  1. ovsdb
  2. OVSDB-351

Southbound plugin throws IllegalStateException when add bridge config via POST

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • unspecified
    • None
    • Operating System: All
      Platform: All

    • 6136

      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 }

      ]
      }
      ]
      }
      ]
      }

            m.vinoth@hcl.com Vinothkumar
            vinh.nguyen@hcl.com Vinh Nguyen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: