[YANGTOOLS-269] DataTree: Subtree write to not-existing container should be checked during write phase Created: 18/Aug/14  Updated: 10/Apr/22  Resolved: 16/Oct/16

Status: Resolved
Project: yangtools
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Robert Varga Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC


External issue ID: 1572

 Description   

running CSIT results in the following being spewed to logs:

2014-08-18 16:34:56.706 CEST [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:7}

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

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

], 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:7:LOCAL}

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

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

], modificationType=WRITE, childModification={}]}]}]
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:7}

], 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:7:LOCAL}

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

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

], 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) ~[bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.resolveSnapshot(InMemoryDataTreeModification.java:110) [bundlefile:na]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.readNode(InMemoryDataTreeModification.java:93) [bundlefile: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]



 Comments   
Comment by Tony Tkacik [ 16/Oct/14 ]

Error could be detected during write and message is confusing to user,
this happens if someone did nested write to /foo/bar and
foo did not exist.

Comment by Robert Varga [ 16/Oct/16 ]

Cannot occur with automatic container lifecycle anymore.

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