<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:12 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-1307] Clustering: Data Broker allows put with Inconsistent Instance Identifier and Data</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1307</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Steps to reproduce,&lt;/p&gt;

&lt;p&gt;1. Build controller stable/lithium&lt;br/&gt;
2. Build openflowplugin stable/lithium or master&lt;br/&gt;
3. Run the openflowplugin karaf distribution&lt;br/&gt;
4. feature:install odl-openflowplugin-all-li&lt;br/&gt;
5. tail the log and make sure the datastore starts up properly&lt;br/&gt;
   Look for log message : shard-manager-config: All Shards are ready - data store config is ready&lt;br/&gt;
6. Using postman or such PUT the following flow,&lt;/p&gt;

&lt;p&gt;PUT : &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/2/flow/FooXf7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/2/flow/FooXf7&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br/&gt;
&amp;lt;flow xmlns=&quot;urn:opendaylight:flow:inventory&quot;&amp;gt;&lt;br/&gt;
    &amp;lt;strict&amp;gt;false&amp;lt;/strict&amp;gt;&lt;br/&gt;
    &amp;lt;instructions&amp;gt;&lt;br/&gt;
        &amp;lt;instruction&amp;gt;&lt;br/&gt;
            &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
            &amp;lt;apply-actions&amp;gt;&lt;br/&gt;
                &amp;lt;action&amp;gt;&lt;br/&gt;
                    &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br/&gt;
                    &amp;lt;dec-nw-ttl/&amp;gt;&lt;br/&gt;
                &amp;lt;/action&amp;gt;&lt;br/&gt;
            &amp;lt;/apply-actions&amp;gt;&lt;br/&gt;
        &amp;lt;/instruction&amp;gt;&lt;br/&gt;
    &amp;lt;/instructions&amp;gt;&lt;br/&gt;
    &amp;lt;table_id&amp;gt;2&amp;lt;/table_id&amp;gt;&lt;br/&gt;
    &amp;lt;id&amp;gt;130&amp;lt;/id&amp;gt;&lt;br/&gt;
    &amp;lt;cookie_mask&amp;gt;255&amp;lt;/cookie_mask&amp;gt;&lt;br/&gt;
    &amp;lt;match&amp;gt;&lt;br/&gt;
        &amp;lt;ethernet-match&amp;gt;&lt;br/&gt;
            &amp;lt;ethernet-type&amp;gt;&lt;br/&gt;
                &amp;lt;type&amp;gt;2048&amp;lt;/type&amp;gt;&lt;br/&gt;
            &amp;lt;/ethernet-type&amp;gt;&lt;br/&gt;
            &amp;lt;ethernet-destination&amp;gt;&lt;br/&gt;
                &amp;lt;address&amp;gt;ff:ff:ff:ff:ff:aa&amp;lt;/address&amp;gt;&lt;br/&gt;
            &amp;lt;/ethernet-destination&amp;gt;&lt;br/&gt;
            &amp;lt;ethernet-source&amp;gt;&lt;br/&gt;
                &amp;lt;address&amp;gt;00:00:00:11:23:ae&amp;lt;/address&amp;gt;&lt;br/&gt;
            &amp;lt;/ethernet-source&amp;gt;&lt;br/&gt;
        &amp;lt;/ethernet-match&amp;gt;&lt;br/&gt;
        &amp;lt;ipv4-source&amp;gt;10.1.2.0/24&amp;lt;/ipv4-source&amp;gt;&lt;br/&gt;
        &amp;lt;ipv4-destination&amp;gt;20.4.0.0/16&amp;lt;/ipv4-destination&amp;gt;&lt;br/&gt;
        &amp;lt;ip-match&amp;gt;&lt;br/&gt;
            &amp;lt;ip-protocol&amp;gt;56&amp;lt;/ip-protocol&amp;gt;&lt;br/&gt;
            &amp;lt;ip-dscp&amp;gt;15&amp;lt;/ip-dscp&amp;gt;&lt;br/&gt;
            &amp;lt;ip-ecn&amp;gt;1&amp;lt;/ip-ecn&amp;gt;&lt;br/&gt;
        &amp;lt;/ip-match&amp;gt;&lt;br/&gt;
        &amp;lt;in-port&amp;gt;0&amp;lt;/in-port&amp;gt;&lt;br/&gt;
    &amp;lt;/match&amp;gt;&lt;br/&gt;
    &amp;lt;cookie&amp;gt;7&amp;lt;/cookie&amp;gt;&lt;br/&gt;
    &amp;lt;flow-name&amp;gt;FooXf7&amp;lt;/flow-name&amp;gt;&lt;br/&gt;
    &amp;lt;priority&amp;gt;7&amp;lt;/priority&amp;gt;&lt;br/&gt;
    &amp;lt;barrier&amp;gt;false&amp;lt;/barrier&amp;gt;&lt;br/&gt;
&amp;lt;/flow&amp;gt;&lt;/p&gt;

&lt;p&gt;8. PUT the same flow again and you will see the following exception in the log and the PUT will fail. &lt;/p&gt;

&lt;p&gt;My expectation is that this should work as it is the only way to modify a flow. Also, note that PUTting a different flow into the same table also fails.&lt;/p&gt;



&lt;p&gt;2015-05-12 11:25:47,673 | ERROR | lt-dispatcher-30 | Shard                            | 175 - org.opendaylight.controller.sal-akka-raft - 1.2.0.SNAPSHOT | member-1-shard-inventory-config An exception occurred while preCommitting transaction member-1-txn-3&lt;br/&gt;
java.lang.IllegalStateException: Optional.get() cannot be called on an absent value&lt;br/&gt;
	at com.google.common.base.Absent.get(Absent.java:47)&lt;span class=&quot;error&quot;&gt;&amp;#91;64:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:78)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.create(DataTreeCandidatePayload.java:99)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.continueCommit(Shard.java:322)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCommit(ShardCommitCoordinator.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCanCommit(ShardCommitCoordinator.java:296)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleForwardedReadyTransaction(ShardCommitCoordinator.java:139)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:230)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)&lt;span class=&quot;error&quot;&gt;&amp;#91;174:org.opendaylight.controller.sal-clustering-commons:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$State$class.process(Recovery.scala:30)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.invoke(ActorCell.scala:487)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.run(Mailbox.scala:221)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.exec(Mailbox.scala:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
2015-05-12 11:25:47,675 | WARN  | lt-dispatcher-23 | ConcurrentDOMDataBroker          | 182 - org.opendaylight.controller.sal-distributed-datastore - 1.2.0.SNAPSHOT | Tx: DOM-3 Error during phase CAN_COMMIT, starting Abort&lt;br/&gt;
java.lang.IllegalStateException: Optional.get() cannot be called on an absent value&lt;br/&gt;
	at com.google.common.base.Absent.get(Absent.java:47)&lt;span class=&quot;error&quot;&gt;&amp;#91;64:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:78)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeNode(DataTreeCandidatePayload.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.writeChildren(DataTreeCandidatePayload.java:60)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.create(DataTreeCandidatePayload.java:99)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.continueCommit(Shard.java:322)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCommit(ShardCommitCoordinator.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCanCommit(ShardCommitCoordinator.java:296)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleForwardedReadyTransaction(ShardCommitCoordinator.java:139)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:230)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)&lt;span class=&quot;error&quot;&gt;&amp;#91;174:org.opendaylight.controller.sal-clustering-commons:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$State$class.process(Recovery.scala:30)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;172:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.invoke(ActorCell.scala:487)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.run(Mailbox.scala:221)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.exec(Mailbox.scala:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25861">CONTROLLER-1307</key>
            <summary>Clustering: Data Broker allows put with Inconsistent Instance Identifier and Data</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="tony.tkacik@gmail.com">Tony Tkacik</assignee>
                                    <reporter username="moraja@cisco.com">Moiz Raja</reporter>
                        <labels>
                    </labels>
                <created>Tue, 12 May 2015 18:34:13 +0000</created>
                <updated>Thu, 4 Jun 2015 21:01:43 +0000</updated>
                            <resolved>Thu, 4 Jun 2015 21:01:43 +0000</resolved>
                                    <version>Post-Helium</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="50590" author="tony.tkacik@gmail.com" created="Wed, 13 May 2015 09:08:57 +0000"  >&lt;p&gt;Did bit analysis and exception was caused by two different factors:&lt;/p&gt;


&lt;p&gt;XML and RESTCONF URI for PUT were inconsistent:&lt;/p&gt;

&lt;p&gt;URI specifies flow id as FooXf7, but xml body of flow specifies id 130.&lt;br/&gt;
This bug is tracked in restconf as &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1249&quot; title=&quot;It&amp;#39;s possible to do POST to element to list with mismatching IDs in data and URI&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1249&quot;&gt;&lt;del&gt;CONTROLLER-1249&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Restconf created instance identifier with FooXf7, but data body contained id 130.&lt;/p&gt;

&lt;p&gt;Data Broker and Data Tree, failed to verify&lt;br/&gt;
that last argument of instance identifier is different from Node Identifier&lt;br/&gt;
in data, which resulted in inconsistencies in internal structures and failed.&lt;/p&gt;

&lt;p&gt;So to fix this is to do check on input that last path argument of II and&lt;br/&gt;
node identifier of data matches.&lt;/p&gt;

&lt;p&gt;Decreasing to normal, since that bug is observed only with incorrect II and data.&lt;br/&gt;
For correct data and II clustered datastore behaves normally and operation works.&lt;/p&gt;</comment>
                            <comment id="50591" author="tony.tkacik@gmail.com" created="Wed, 13 May 2015 09:26:28 +0000"  >
&lt;p&gt;In-Memory Data Tree and In-Memory Data Store (transitevely)&lt;br/&gt;
   &lt;a href=&quot;https://git.opendaylight.org/gerrit/20225&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/20225&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clustering Data Store:&lt;/p&gt;

&lt;p&gt;   &lt;a href=&quot;https://git.opendaylight.org/gerrit/20226&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/20226&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3189</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=3189]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10383"><![CDATA[Lithium-RC1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10301"><![CDATA[Normal]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02prj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>