<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:23:37 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>[NETVIRT-1260] OLFE: Conflicting modification for path... interfaces/interface/interface... name=ed2e5068-31bd-4bcd-9479-0860a9eba76e</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-1260</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine/421/odl_1/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine/421/odl_1/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;


&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2018-05-11T17:06:10,067 | WARN  | opendaylight-cluster-data-shard-dispatcher-32 | ShardDataTree                    | 246 - org.opendaylight.controller.sal-distributed-datastore - 1.8.0.SNAPSHOT | member-1-shard-default-config: Store Tx member-1-datastore-config-fe-0-txn-8784-0: Conflicting modification for path /(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)interfaces/interface/interface[{(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)name=ed2e5068-31bd-4bcd-9479-0860a9eba76e}].
2018-05-11T17:06:10,083 | INFO  | ForkJoinPool-1-worker-2 | InterfaceAddWorkerOnElanInterface | 367 - org.opendaylight.netvirt.elanmanager-impl - 0.7.0.SNAPSHOT | Handling elan interface bc5e0034-f81a-47ff-904f-49376d4312e7 add for elan 703b8c5f-3d4e-4ed2-b628-8860ba3de59e 
2018-05-11T17:06:10,070 | ERROR | opendaylight-cluster-data-akka.actor.default-dispatcher-3 | LocalThreePhaseCommitCohort      | 246 - org.opendaylight.controller.sal-distributed-datastore - 1.8.0.SNAPSHOT | Failed to prepare transaction member-1-datastore-config-fe-0-txn-8784-0 on backend
org.opendaylight.mdsal.common.api.OptimisticLockFailedException: Optimistic lock failed.
	at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:740) ~[246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:778) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:725) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:808) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:84) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:731) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:333) [246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270) [230:org.opendaylight.controller.sal-akka-raft:1.8.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:44) [238:org.opendaylight.controller.sal-clustering-commons:1.8.0.SNAPSHOT]
	at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:275) [43:com.typesafe.akka.persistence:2.5.11]
	at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104) [238:org.opendaylight.controller.sal-clustering-commons:1.8.0.SNAPSHOT]
	at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:608) [40:com.typesafe.akka.actor:2.5.11]
	at akka.actor.Actor.aroundReceive(Actor.scala:517) [40:com.typesafe.akka.actor:2.5.11]
	at akka.actor.Actor.aroundReceive$(Actor.scala:515) [40:com.typesafe.akka.actor:2.5.11]
	at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:273) [43:com.typesafe.akka.persistence:2.5.11]
	at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:691) [43:com.typesafe.akka.persistence:2.5.11]
	at akka.persistence.Eventsourced.aroundReceive(Eventsourced.scala:192) [43:com.typesafe.akka.persistence:2.5.11]
	at akka.persistence.Eventsourced.aroundReceive$(Eventsourced.scala:191) [43:com.typesafe.akka.persistence:2.5.11]
	at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:273) [43:com.typesafe.akka.persistence:2.5.11]
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:590) [40:com.typesafe.akka.actor:2.5.11]
	at akka.actor.ActorCell.invoke(ActorCell.scala:559) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.Mailbox.run(Mailbox.scala:224) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.Mailbox.exec(Mailbox.scala:234) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [40:com.typesafe.akka.actor:2.5.11]
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [40:com.typesafe.akka.actor:2.5.11]
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node children was modified by other transaction
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkConflicting(SchemaAwareApplyOperation.java:81) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkNotConflicting(SchemaAwareApplyOperation.java:114) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:178) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:135) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:307) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:315) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:138) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:307) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:290) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:132) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:101) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:307) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:290) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:132) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35) ~[446:org.opendaylight.yangtools.yang-data-impl:2.0.3]
	at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:732) ~[246:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
	... 30 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="29970">NETVIRT-1260</key>
            <summary>OLFE: Conflicting modification for path... interfaces/interface/interface... name=ed2e5068-31bd-4bcd-9479-0860a9eba76e</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <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="10003">Cannot Reproduce</resolution>
                                        <assignee username="abhinav.gupta">Abhinav Gupta</assignee>
                                    <reporter username="shague">Sam Hague</reporter>
                        <labels>
                            <label>csit:exception</label>
                    </labels>
                <created>Tue, 15 May 2018 21:29:55 +0000</created>
                <updated>Tue, 19 Nov 2019 18:34:39 +0000</updated>
                            <resolved>Wed, 3 Oct 2018 19:27:16 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="62976" author="faseela.k@ericsson.com" created="Thu, 17 May 2018 06:22:31 +0000"  >&lt;p&gt;One thing I always wanted to ask is, when this OptimistickLockFailedException comes, it would be good if we can atleast get the path at which the exception has come. It is difficult to track from logs otherwise to understand which datastore write exactly resulted in this error.&lt;/p&gt;

&lt;p&gt;We are just assuming things from the immediate log before the exception, which may not be always true.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt; : Any help can be done in this area?&lt;/p&gt;</comment>
                            <comment id="62977" author="faseela.k@ericsson.com" created="Thu, 17 May 2018 06:30:26 +0000"  >&lt;p&gt;Assuming that the conflicting modification log immediately above this is the reason for this exception :&lt;/p&gt;

&lt;p&gt;2018-05-11T17:06:10,067 | WARN | opendaylight-cluster-data-shard-dispatcher-32 | ShardDataTree | 246 - org.opendaylight.controller.sal-distributed-datastore - 1.8.0.SNAPSHOT | member-1-shard-default-config: Store Tx member-1-datastore-config-fe-0-txn-8784-0: Conflicting modification for path /(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)interfaces/interface/interface&lt;span class=&quot;error&quot;&gt;&amp;#91;\{(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)name=ed2e5068-31bd-4bcd-9479-0860a9eba76e}&amp;#93;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;do we have any recent change in NeutronPortChangeListener in neutronvpn that has recently landed?&lt;/p&gt;</comment>
                            <comment id="63033" author="vorburger" created="Tue, 22 May 2018 09:04:42 +0000"  >&lt;p&gt;&amp;gt; Any help can be done in this area?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1830&quot; title=&quot;Add path to exception logs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1830&quot;&gt;&lt;del&gt;CONTROLLER-1830&lt;/del&gt;&lt;/a&gt; is taking care of this, from what I understood.&lt;/p&gt;</comment>
                            <comment id="63128" author="shague@redhat.com" created="Thu, 24 May 2018 21:28:31 +0000"  >&lt;p&gt;still seen: &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine/509/odl_1/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine/509/odl_1/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="63184" author="faseela.k@ericsson.com" created="Tue, 29 May 2018 23:50:24 +0000"  >&lt;p&gt;I had a look at the neutronvpn code.&lt;/p&gt;

&lt;p&gt;The reason why it &#160;throws exception even for single node is that DJC in neutron vpn uses a different key than the DJC in interface-manager, and hence the error is thrown.&lt;/p&gt;

&lt;p&gt;Now, even if we fix the DJC key, the solution will not work for cluster.&lt;/p&gt;

&lt;p&gt;I can think of two solutions :&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Use DataTreeEventCallbackRegistrar to make one of the two guys wait till the other guy pushes all information.(This utility currently does not work in Cluster, see : &lt;a href=&quot;https://jira.opendaylight.org/browse/GENIUS-141&quot; title=&quot;DataTreeEventCallbackRegistrar does not work in Cluster in all scenarios&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GENIUS-141&quot;&gt;&lt;del&gt;GENIUS-141&lt;/del&gt;&lt;/a&gt;, which I am trying to fix first. Also not quite sure whether this will bring in any performance bottlenecks).&lt;/li&gt;
	&lt;li&gt;Move updating parent-ref logic back to neutron-vpn. Neutron-vpn can listen for ovsdb event to get the external-id information and do update parent-interface, which will easily align with single writer principle.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="63187" author="rshashidhar" created="Wed, 30 May 2018 06:09:06 +0000"  >&lt;p&gt;We analyzed logs and below are our observations from ACL point of view&lt;/p&gt;

&lt;p&gt;(1) From the logs OptimisticLockFailedException is observed for ietf-interfaces path as shown below (with latest logs attached):&lt;/p&gt;

&lt;p&gt;&#160;org.opendaylight.mdsal.common.api.OptimisticLockFailedException: Optimistic lock failed for path /(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)interfaces/interface/interface&lt;span class=&quot;error&quot;&gt;&amp;#91;\{(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)name=ecb03cb6-8a45-4b07-b760-3066f6017a5d}&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&#160;(2) ACL only reads ietf-interfaces for doing validations; but does not modify interfaces. As it doesn&#8217;t modify interfaces, the &#160;OptimisticLockFailedException observed above is not from ACL module.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I also discussed about this with Abhinav from neutrovpn point of view. Below are the details:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;In oxygen and fluorine, interface manager is updating the parent refs.&lt;/li&gt;
	&lt;li&gt;As Neutronvpn creates/deletes the interface with jobCoordinator, ConflictingModificationAppliedException would not be in Neutronvpn.&lt;/li&gt;
	&lt;li&gt;Also SG addition/deletion to a port is modification of one of the parameter of neutron port itself. As this is already handled with jobCoordinator, ConflictingModificationAppliedException would not be because of SG updates as well.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Modification of SGs (like addition or deletion of rules): Handled independent of ietf-interfaces both in Neutronvpn and ACL modules.&lt;/p&gt;

&lt;p&gt;Assigning bug to Faseela for analyzing further from interface manger point of view.&lt;/p&gt;</comment>
                            <comment id="63188" author="abhinav.gupta" created="Wed, 30 May 2018 07:21:48 +0000"  >&lt;p&gt;Hi Faseela,&lt;/p&gt;

&lt;p&gt;Regarding the two possible solutions you&#8217;ve suggested:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Use DataTreeEventCallbackRegistrar to make one of the two guys wait till the other guy pushes all information.(This utility currently does not work in Cluster, see : &lt;a href=&quot;https://jira.opendaylight.org/browse/GENIUS-141&quot; title=&quot;DataTreeEventCallbackRegistrar does not work in Cluster in all scenarios&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GENIUS-141&quot;&gt;&lt;del&gt;GENIUS-141&lt;/del&gt;&lt;/a&gt;, which I am trying to fix first. Also not quite sure whether this will bring in any performance bottlenecks).&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Abhinav&amp;#93;&lt;/span&gt; Since this is at per port level, this could rightly bring in performance bottlenecks and we may want a better solution.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Move updating parent-ref logic back to neutron-vpn. Neutron-vpn can listen for ovsdb event to get the external-id information and do update parent-interface, which will easily align with single writer principle.&lt;/li&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Abhinav&amp;#93;&lt;/span&gt;We&#8217;ve always tried to keep nvpn decoupled from southbound logic. This could be a last resort solution if nothing else fits.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So currently,&lt;/p&gt;

&lt;p&gt;NeutronVPN: Creates/deletes the interface, updates (adds) InterfaceACL augmentation for security updates&lt;/p&gt;

&lt;p&gt;Inf-Mgr&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Updates the parentRefs&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Since inf-mgr has the entire data to create inf upon receiving exernal-id info from OVSDB, can we create the inf the first time then itself, as well as handle deletes based on the same? ACL aug updates today are doing a read on the entire inf object and then doing a PUT (looks like a leftover PUT from when the entire object was fetched for updating parent-refs). This can be changed to MERGE as well as we can write directly on the augmentation path identifier.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This would align with the single writer principle. What do you think?&lt;/p&gt;</comment>
                            <comment id="63189" author="faseela.k@ericsson.com" created="Wed, 30 May 2018 09:39:43 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=AbhinavGupta&quot; class=&quot;user-hover&quot; rel=&quot;AbhinavGupta&quot;&gt;AbhinavGupta&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;&#160; Interface-manager will have trouble in understanding the interface-type, trunk-port or sub-port as I don&#8217;t see that information coming from southbound. If this can be supplied by nova while creating the VM, it can be done. Could you please confirm?&lt;/p&gt;

&lt;p&gt;Else the solution you have proposed is not feasible. So please pick one solution from the 2 I have given &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Faseela&lt;/p&gt;</comment>
                            <comment id="63190" author="faseela.k@ericsson.com" created="Wed, 30 May 2018 09:42:33 +0000"  >&lt;p&gt;Let us decide on what will be the preferred approach from the 2 solutions specified. Assigning the bug to Abhinav to decide on the solution. Based on whether the change is needed in neutron-vpn or interface-manager, we can change the assignee later on.&lt;/p&gt;</comment>
                            <comment id="63196" author="faseela.k@ericsson.com" created="Wed, 30 May 2018 16:23:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=shague&quot; class=&quot;user-hover&quot; rel=&quot;shague&quot;&gt;shague&lt;/a&gt; : One quick question, is this yet another exception coming in the log, or are there functional impacts.&lt;/p&gt;

&lt;p&gt;When I take a look at the code, we are using DJC retries, and if two threads are doing transaction.merge(), for the initial time we might get the exception, but subsequent retries would have gone through. Is that the case?&lt;/p&gt;

&lt;p&gt;If so, do we just want to enhance DJC not print the whole exception stack trace for initial trials, and only do it if all retries fail?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt; : Does this seem valid?&lt;/p&gt;</comment>
                            <comment id="63203" author="vorburger" created="Thu, 31 May 2018 09:26:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=k.faseela&quot; class=&quot;user-hover&quot; rel=&quot;k.faseela&quot;&gt;k.faseela&lt;/a&gt;&#160;I am pretty sure that I have already done exactly what you propose quite a while ago, check out:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/opendaylight/infrautils/commit/77cc4ccfc65b98d7dc4b0b24052a60f9e77c065b#diff-8dc9ad74499a7d8d42ed6a98b2787939&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/infrautils/commit/77cc4ccfc65b98d7dc4b0b24052a60f9e77c065b#diff-8dc9ad74499a7d8d42ed6a98b2787939&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/opendaylight/infrautils/commit/f7dc06b9515c915f2a0dd6ec1deab759f535454d#diff-8dc9ad74499a7d8d42ed6a98b2787939&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/infrautils/commit/f7dc06b9515c915f2a0dd6ec1deab759f535454d#diff-8dc9ad74499a7d8d42ed6a98b2787939&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/opendaylight/infrautils/commit/a05719f6ea7b9afacf502d5587c62184b55218a8#diff-8dc9ad74499a7d8d42ed6a98b2787939&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/infrautils/commit/a05719f6ea7b9afacf502d5587c62184b55218a8#diff-8dc9ad74499a7d8d42ed6a98b2787939&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If you have reason to believe that this is not working as we would like it to, can you open a new Jira in INFRAUTILS with details of a case where you think it is printing the whole exception stack trace for initial trials? I don&apos;t see how.&lt;/p&gt;</comment>
                            <comment id="63204" author="abhinav.gupta" created="Thu, 31 May 2018 10:05:46 +0000"  >&lt;p&gt;Looked into Karaf logs from build 510 to 539 for a few builds randomly. This exception doesn&apos;t show up.&lt;br/&gt;
509 was the last build where this exception was seen, and from the Karaf logs, looks like to be a conflict between SG update from NeutronVPN and parent ref update from inf-mgr.&lt;/p&gt;</comment>
                            <comment id="63205" author="abhinav.gupta" created="Thu, 31 May 2018 10:17:11 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=k.faseela&quot; class=&quot;user-hover&quot; rel=&quot;k.faseela&quot;&gt;k.faseela&lt;/a&gt;, the exception here, as per build 509 occurs only once throughout the log where LocalThreePhaseCommitCohort prints an ERROR message.&lt;br/&gt;
Looks like the 2nd retry succeeded, and there&apos;s no functionality impact here.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="63449" author="abhinav.gupta" created="Thu, 14 Jun 2018 11:13:17 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=shague&quot; class=&quot;user-hover&quot; rel=&quot;shague&quot;&gt;shague&lt;/a&gt;, as this exception was last seen in build 509, do we need to keep tracking this one?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="29969">NETVIRT-1259</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="14647" name="odl1_karaf.421.log.tar.xz" size="608380" author="shague" created="Tue, 15 May 2018 21:29:35 +0000"/>
                    </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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03ekv:</customfieldvalue>

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