[OVSDB-248] cannot create a bridge using northbound REST api with clustering. Created: 09/Jan/16  Updated: 19/Oct/17  Resolved: 13/Jan/16

Status: Resolved
Project: ovsdb
Component/s: Other
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Jamo Luhrsen Assignee: Unassigned
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 ovsdbClusterWontCreateBridge.karaf.log    
Issue Links:
Blocks
is blocked by YANGTOOLS-554 java.lang.IllegalArgumentException: U... Resolved
External issue ID: 4908

 Description   

with a 3 node cluster with ovsdb southbound installed, a bridge cannot be created.

this is coming from a failure in CSIT:

ovsdb-csit-3node-clustering-only-beryllium

3 node cluster, each node installs:
odl-mdsal-clustering
odl-ovsdb-southbound-impl-rest

OVS control is configured like this:
sudo ovs-vsctl set-manager tcp:

{IP1}:6640 tcp:{IP2}:6640 tcp:{IP3}:6640

The PUT can be sent to any of the controllers, but the URI is:
http://{IP}:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/ovsdb://uuid/{UUID}/bridge/brtest

The PUT data in CSIT is this:
{
"node": [
{
"node-id": "ovsdb://uuid/{UUID}/bridge/br01",
"ovsdb:bridge-name": "br01",
"ovsdb:protocol-entry": [
{ "protocol": "ovsdb:ovsdb-bridge-protocol-openflow-13" }
],
"ovsdb:controller-entry": [
{
"target": "tcp:{IP1}

:6640"
},
{
"target": "tcp:

{IP2}

:6640"
},
{
"target": "tcp:

{IP3}

:6640"
}
],
"ovsdb:bridge-other-configs": [

{ "bridge-other-config-key": "datapath-id", "bridge-other-config-value": "0000000000000001" }

],
"ovsdb:managed-by": "/network-topology:network-topology/network-topology:topology[network-topology:topology-id='ovsdb:1']/network-topology:node[network-topology:node-id='ovsdb://uuid/

{UUID}

']"
}
]
}

The following ERROR is seen in the karaf.log of each controller after each PUT. It comes with each
DELETE as well:

2016-01-09 00:18:34,608 | ERROR | lt-dispatcher-20 | Shard | 136 - org.opendaylight.controller.sal-akka-raft - 1.3.0.SNAPSHOT | member-2-shard-topology-operational: Error applying replica null
org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology does not exist. Cannot apply modification to its children.
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:182)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkTouchApplicable(MinMaxElementsValidation.java:145)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:189)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:95)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:189)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:38)[55:org.opendaylight.yangtools.yang-data-impl:0.8.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.ShardDataTree.applyForeignCandidate(ShardDataTree.java:192)[139:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.Shard.applyState(Shard.java:641)[139:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:228)[136:org.opendaylight.controller.sal-akka-raft:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:36)[135:org.opendaylight.controller.sal-clustering-commons:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:274)[139:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT]
at akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)[135:org.opendaylight.controller.sal-clustering-commons:1.3.0.SNAPSHOT]
at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)[124:com.typesafe.akka.actor:2.3.14]
at akka.persistence.Recovery$State$class.process(Recovery.scala:30)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)[129:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[124:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[124:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[124:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.run(Mailbox.scala:220)[124:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[124:com.typesafe.akka.actor:2.3.14]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)[121:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)[121:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)[121:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)[121:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]



 Comments   
Comment by Jamo Luhrsen [ 09/Jan/16 ]

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

Comment by Jamo Luhrsen [ 13/Jan/16 ]

YANGTOOLS-554 is FIXED and I no longer see this locally. upstream CSIT failure [0] are test code related and being fixed with this patch [1].

[0] https://jenkins.opendaylight.org/releng/view/ovsdb/job/ovsdb-csit-3node-clustering-only-beryllium/
[1] https://git.opendaylight.org/gerrit/#/c/32376

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