[NEMO-4] Intermittent VNMappingException in NIC BoD flow Created: 19/Jan/16  Updated: 19/Oct/17  Resolved: 04/Feb/16

Status: Resolved
Project: nemo
Component/s: General
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Gary Wu 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
URL: https://git.opendaylight.org/gerrit/#/c/33076/


External issue ID: 4998

 Description   

When testing the NIC BoD flow, a VNMappingException is thrown intermittently.

To reproduce:

Build and run karaf from the NIC project. Then:

feature:install odl-nic-core-service-mdsal odl-nic-renderer-nemo

Then run the following scripts from NEMO in sequence:

nemo-impl/src/main/resources/nemo-odl.py
nemo-impl/src/test/resources/nic-bod-setup.py
nemo-impl/src/test/resources/nic-bod-intent.py

Note that an "IntentResolutionException: The physical hosts do not exist." exception is expected when first running nic-bod-setup.py. This is expected and is not what this issue is about.

The issue is that:

Intermittently, upon running nic-bod-intent.py the following exception is thrown:

org.opendaylight.nemo.intent.computation.VNMappingException: Failed mapping for the virtual link 1655f574-04f1-487b-8337-a27a0cefc60c in the virtual network 14ce424a-3e50-4a2a-ad5c-b29845158c8b
at org.opendaylight.nemo.intent.computation.VNMappingUnit.virtualNetworkMapping(VNMappingUnit.java:208)
at org.opendaylight.nemo.intent.IntentResolver.resolveIntent(IntentResolver.java:400)
at org.opendaylight.nemo.user.UserManager.endTransaction(UserManager.java:128)
at org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:30)
at org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52)
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:85)
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:72)
at org.opendaylight.controller.md.sal.dom.broker.impl.GlobalDOMRpcRoutingTableEntry.invokeRpc(GlobalDOMRpcRoutingTableEntry.java:40)
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:186)
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:124)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:65)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:43)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:159)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:96)
at com.sun.proxy.$Proxy87.endTransaction(Unknown Source)
at org.opendaylight.nic.nemo.renderer.NEMORenderer.endTransaction(NEMORenderer.java:217)
at org.opendaylight.nic.nemo.renderer.NEMORenderer.executeNemoRpc(NEMORenderer.java:172)
at org.opendaylight.nic.nemo.renderer.NEMORenderer.createOrUpdateIntent(NEMORenderer.java:186)
at org.opendaylight.nic.nemo.renderer.NEMORenderer.create(NEMORenderer.java:100)
at org.opendaylight.nic.nemo.renderer.NEMORenderer.onDataChanged(NEMORenderer.java:89)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatingDataChangeInvoker.onDataChanged(AbstractForwardedDataBroker.java:143)
at org.opendaylight.controller.cluster.datastore.DataChangeListener.dataChanged(DataChangeListener.java:66)
at org.opendaylight.controller.cluster.datastore.DataChangeListener.handleReceive(DataChangeListener.java:39)
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)



 Comments   
Comment by Zhang Yali [ 04/Feb/16 ]

Test the case in the physical network which constructed by ofsoftswitch, the intent from NIC could be implemented well with NEMO renderer.

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