[CONTROLLER-698] Exceptions when Data Store droptest is running Created: 17/Aug/14  Updated: 19/Oct/17  Resolved: 09/Nov/15

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: Helium
Fix Version/s: None

Type: Bug
Reporter: Jan Medved Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS
Platform: Macintosh


External issue ID: 1564

 Description   

The Data Store droptest does not work anymore, and these exceptions are seen when FRM is trying to write flows into the data store:

java.lang.IllegalArgumentException: Metadata not available for modification [NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13}

], modificationType=SUBTREE_MODIFIED, childModification={(urn:opendaylight:inventory?revision=2013-08-19)node-connector=NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector, modificationType=MERGE, childModification={(urn:opendaylight:inventory?revision=2013-08-19)node-connector[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13:4}

]=NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13:4}

], modificationType=WRITE, childModification={}]}]}]]
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:186) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.mutateChildren(NormalizedNodeContainerModificationStrategy.java:132) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:163) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.NormalizedNodeContainerModificationStrategy$UnorderedMapModificationStrategy.applySubtreeChange(NormalizedNodeContainerModificationStrategy.java:311) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:188) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.resolveSnapshot(InMemoryDataTreeModification.java:110) ~[na:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.readNode(InMemoryDataTreeModification.java:93) ~[na:na]
at org.opendaylight.controller.md.sal.dom.store.impl.SnapshotBackedReadWriteTransaction.read(SnapshotBackedReadWriteTransaction.java:58) ~[bundlefile:na]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMForwardedReadWriteTransaction.read(DOMForwardedReadWriteTransaction.java:51) [bundlefile:na]
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doRead(AbstractForwardedTransaction.java:63) [bundlefile:na]
at org.opendaylight.controller.md.sal.binding.impl.BindingDataReadWriteTransactionImpl.read(BindingDataReadWriteTransactionImpl.java:31) [bundlefile:na]
at org.opendaylight.controller.md.inventory.manager.NodeChangeCommiter$4.applyOperation(NodeChangeCommiter.java:117) [bundlefile:na]
at org.opendaylight.controller.md.inventory.manager.FlowCapableInventoryProvider.run(FlowCapableInventoryProvider.java:93) [bundlefile:na]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
2014-08-17 01:41:01.330 PDT [FlowCapableInventoryProvider] ERROR o.o.y.y.d.i.s.t.InMemoryDataTreeModification - Could not create snapshot for (urn:opendaylight:inventory?revision=2013-08-19)nodes/(urn:opendaylight:inventory?revision=2013-08-19)node/(urn:opendaylight:inventory?revision=2013-08-19)node[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13}

]:NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13}

], modificationType=SUBTREE_MODIFIED, childModification={(urn:opendaylight:inventory?revision=2013-08-19)node-connector=NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector, modificationType=MERGE, childModification={(urn:opendaylight:inventory?revision=2013-08-19)node-connector[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13:4}

]=NodeModification [identifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector[

{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:13:4}

], modificationType=WRITE, childModification={}]}]}]

To reproduce, simply run the cbench test with the Data Store loopback turned on (dropAllPackets on)



 Comments   
Comment by Naresh kumar [ 21/Oct/14 ]

Which Controller are you using?

Comment by Carol Sanders [ 04/May/15 ]

This bug is part of the project to Move all ADSAL associated component bugs to ADSAL.

Comment by Jamo Luhrsen [ 20/Jul/15 ]

I've retested this with the Lithium release and the issue is still there.
with 57 iterations, the average performance value went from 20k to under
5k. Attached is a spreadsheet with this info.

Comment by Jamo Luhrsen [ 20/Jul/15 ]

(In reply to Jamo Luhrsen from comment #3)
> I've retested this with the Lithium release and the issue is still there.
> with 57 iterations, the average performance value went from 20k to under
> 5k. Attached is a spreadsheet with this info.

ignore this comment. was meant for another bug.

Comment by Tony Tkacik [ 09/Nov/15 ]

Actually it was application error, which did not properly tracked its writes and causality between writes, using TransactionChain would introduce such causality.

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