Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
unspecified
-
None
-
None
-
Operating System: All
Platform: All
-
2001
Description
The LBaaSHandler code must not act upon the notifyNode(DELETE) and proactive try to remove flow state. Otherwise the AbstractServiceInstance.removeFlow() throws the following exception that kills the event processing thread.
java.util.concurrent.ExecutionException: TransactionCommitFailedException{message=Data did not pass validation., errorList=[RpcError [message=Data did not pass validation., severity=ERROR, er
orType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight
inventory?revision=2013-08-19)nodes/node/node[
]/AugmentationIdentifier
{childNames=[(urn:opendaylight:flow:inventory revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inve tory?revision=2013-08-19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow: nventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)description, ( rn:opendaylight:flow:inventory?revision=2013-08-19)serial-number]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50
]/flow/flow[
] does not exist. Cannot apply modification to its children.]]}
at org.opendaylight.yangtools.util.concurrent.MappingCheckedFuture.wrapInExecutionException(MappingCheckedFuture.java:64)[203:org.opendaylight.yangtools.util:0.6.2.SNAPSHOT]
at org.opendaylight.yangtools.util.concurrent.MappingCheckedFuture.get(MappingCheckedFuture.java:77)[203:org.opendaylight.yangtools.util:0.6.2.SNAPSHOT]
at org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.AbstractServiceInstance.removeFlow(AbstractServiceInstance.java:170)[339:org.opendaylight.ovsdb.openstack.net-virt-pro
iders:1.0.0.SNAPSHOT]
at org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.LoadBalancerService.removeLoadBalancerReverseRules(LoadBalancerService.java:442)[339:org.opendaylight.ovsdb.o
enstack.net-virt-providers:1.0.0.SNAPSHOT]
at org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.LoadBalancerService.programLoadBalancerRules(LoadBalancerService.java:142)[339:org.opendaylight.ovsdb.opensta
k.net-virt-providers:1.0.0.SNAPSHOT]
at org.opendaylight.ovsdb.openstack.netvirt.LBaaSHandler.notifyNode(LBaaSHandler.java:231)[338:org.opendaylight.ovsdb.openstack.net-virt:1.0.0.SNAPSHOT]
at org.opendaylight.controller.switchmanager.internal.SwitchManager.notifyNode(SwitchManager.java:1827)[310:org.opendaylight.controller.switchmanager.implementation:0.4.2.SNAPSHOT]
at org.opendaylight.controller.switchmanager.internal.SwitchManager.removeNode(SwitchManager.java:1100)[310:org.opendaylight.controller.switchmanager.implementation:0.4.2.SNAPSHOT]
at org.opendaylight.controller.switchmanager.internal.SwitchManager.updateNode(SwitchManager.java:1156)[310:org.opendaylight.controller.switchmanager.implementation:0.4.2.SNAPSHOT]
at org.opendaylight.controller.sal.implementation.internal.Inventory.updateNode(Inventory.java:115)[85:org.opendaylight.controller.sal.implementation:0.4.2.SNAPSHOT]
at org.opendaylight.controller.sal.compatibility.InventoryAndReadAdapter.publishNodeUpdate(InventoryAndReadAdapter.java:728)[340:org.opendaylight.controller.sal-compatibility:1.1.0.SN
PSHOT]
at org.opendaylight.controller.sal.compatibility.InventoryAndReadAdapter.onNodeRemoved(InventoryAndReadAdapter.java:418)[340:org.opendaylight.controller.sal-compatibility:1.1.0.SNAPSH
T]
at org.opendaylight.controller.sal.compatibility.InventoryAndReadAdapter$$Broker$ListenerInvoker.onNotification(InventoryAndReadAdapter$$Broker$ListenerInvoker.java)[340:org.opendayli
ht.controller.sal-compatibility:1.1.0.SNAPSHOT]
at org.opendaylight.controller.sal.binding.impl.AbstractNotificationListenerRegistration.notify(AbstractNotificationListenerRegistration.java:38)[268:org.opendaylight.controller.sal-b
nding-broker-impl:1.1.0.SNAPSHOT]
at org.opendaylight.controller.sal.binding.impl.NotifyTask.run(NotifyTask.java:42)[268:org.opendaylight.controller.sal-binding-broker-impl:1.1.0.SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_65]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_65]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_65]
Caused by: TransactionCommitFailedException{message=Data did not pass validation., errorList=[RpcError [message=Data did not pass validation., severity=ERROR, errorType=APPLICATION, tag=opera
ion-failed, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight:inventory?revision=2013-08-19
nodes/node/node[
]/AugmentationIdentifier
{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)table, (u n:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)swit h-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow:inventory?revision=2013-08-19 hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19) upported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inventor ?revision=2013-08-19)serial-number]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[
{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50}]/flow/flow[
{(urn:opendayligh :flow:inventory?revision=2013-08-19)id=LOADBALANCER_REVERSE_FLOW_10.0.0.5_10.0.0.7}] does not exist. Cannot apply modification to its children.]]}
at org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore$ThreePhaseCommitImpl$1.call(InMemoryDOMDataStore.java:401)[271:org.opendaylight.controller.sal-inmemory-datas
ore:1.1.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore$ThreePhaseCommitImpl$1.call(InMemoryDOMDataStore.java:385)[271:org.opendaylight.controller.sal-inmemory-datas
ore:1.1.0.SNAPSHOT]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_65]
at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:293)[122:com.google.guava:14.0.1]
at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:61)[122:com.google.guava:14.0.1]
at org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore$ThreePhaseCommitImpl.canCommit(InMemoryDOMDataStore.java:385)[271:org.opendaylight.controller.sal-inmemory-da