<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:08 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>[NETCONF-479] OptimisticLockFailedException on controller-config when both odl-netconf-connector-ssh and odl-netconf-clustered-topology are installed</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-479</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;This happens only rarely, but this can make autorelease build fail, by failing SingleFeatureTest on some Distribution feature.&lt;/p&gt;

&lt;p&gt;Distribution knows the two features are incompatible when running on 3 node cluster, but this is failing in 1 node tests. Nevertheless, both features are pulled into odl-integration-compatible-with-all in current Oxygen builds:&lt;br/&gt;
odl-netconf-connector-ssh is pulled in by odl-unimgr,&lt;br/&gt;
odl-netconf-clustered-topology is pulled in by odl-vbd.&lt;/p&gt;

&lt;p&gt;Looking at the log &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; from the SFT failure, we see this (after removing lines from unrelated features):&lt;/p&gt;

&lt;p&gt;2017-10-17 05:36:00,548 | INFO  | on-dispatcher-54 | NetconfTopologyUtils             | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | RemoteDevice&lt;/p&gt;
{controller-config} : using the default directory cache/schema&lt;br/&gt;
2017-10-17 05:36:00,564 | INFO  | lt-dispatcher-22 | NetconfTopologyContext           | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | Master was selected: IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=127.0.0.1&amp;#93;&lt;/span&gt;]&lt;br/&gt;
2017-10-17 05:36:00,583 | INFO  | on-dispatcher-50 | AbstractNetconfTopology          | 194 - netconf-topology-config - 1.4.0 | Connecting RemoteDevice{Uri [_value=controller-config]} , with config Node{getNodeId=Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=controller-config&amp;#93;&lt;/span&gt;, augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode=NetconfNode{getActorResponseWaitTime=5, getBetweenAttemptsTimeoutMillis=2000, getConcurrentRpcLimit=0, getConnectionTimeoutMillis=20000, getCredentials=LoginPassword{getPassword=admin, getUsername=admin, augmentations={}}, getDefaultRequestTimeoutMillis=60000, getHost=Host [_ipAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=127.0.0.1&amp;#93;&lt;/span&gt;]], getKeepaliveDelay=120, getMaxConnectionAttempts=0, getPort=PortNumber &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=1830&amp;#93;&lt;/span&gt;, getSchemaCacheDirectory=schema, getSleepFactor=1.5, isReconnectOnChangedSchema=true, isSchemaless=false, isTcpOnly=false}}}&lt;br/&gt;
2017-10-17 05:36:00,654 | INFO  | lt-dispatcher-22 | RemoteDeviceConnectorImpl        | 448 - org.opendaylight.netconf.topology-singleton - 1.4.0 | RemoteDevice{controller-config}
&lt;p&gt;: Adding keepalive facade.&lt;br/&gt;
2017-10-17 05:36:00,697 | WARN  | on-dispatcher-50 | AbstractNetconfTopology          | 194 - netconf-topology-config - 1.4.0 | Adding keepalive facade, for device Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=controller-config&amp;#93;&lt;/span&gt;&lt;br/&gt;
2017-10-17 05:36:00,701 | WARN  | rd-dispatcher-41 | ShardDataTree                    | 354 - org.opendaylight.controller.sal-distributed-datastore - 1.7.0 | member-1-shard-topology-operational: Store Tx member-1-datastore-operational-fe-0-chn-11-txn-0-0: Conflicting modification for path /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology/topology/topology[&lt;/p&gt;
{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)topology-id=topology-netconf}
&lt;p&gt;]/node/node[&lt;/p&gt;
{(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)node-id=controller-config}
&lt;p&gt;].&lt;/p&gt;

&lt;p&gt;which ultimately leads to:&lt;br/&gt;
2017-10-17 05:36:00,792 | ERROR | ime-limited test | SingleFeatureTest                | 75 - PAXEXAM-PROBE-2f9f5f86-a820-45e5-b6ef-75e8a38bd5d0 - 0.0.0 | installFeature() failed&lt;br/&gt;
java.lang.IllegalStateException: RemoteDevice&lt;/p&gt;
{controller-config}
&lt;p&gt;  Transaction(init) not committed correctly&lt;br/&gt;
	at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceTopologyAdapter$1.onFailure(NetconfDeviceTopologyAdapter.java:244)&lt;span class=&quot;error&quot;&gt;&amp;#91;443:org.opendaylight.netconf.sal-netconf-connector:1.7.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1228)&lt;span class=&quot;error&quot;&gt;&amp;#91;77:com.google.guava:22.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:748)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Can Netconf make the two features compatible, or should Distribution split their test features and fail if 1-node Netconf feature is found in 3-node Distribution feature tree, and vice versa?&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/autorelease-release-oxygen/19/integration/distribution/features/singles/odl-integration-compatible-with-all/target/surefire-reports/org.opendaylight.odlparent.featuretest.SingleFeatureTest-output.txt.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/jenkins092/autorelease-release-oxygen/19/integration/distribution/features/singles/odl-integration-compatible-with-all/target/surefire-reports/org.opendaylight.odlparent.featuretest.SingleFeatureTest-output.txt.gz&lt;/a&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21492">NETCONF-479</key>
            <summary>OptimisticLockFailedException on controller-config when both odl-netconf-connector-ssh and odl-netconf-clustered-topology are installed</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="JMorvay">Jakub Morvay</assignee>
                                    <reporter username="vrpolak">Vratko Polak</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Oct 2017 13:33:03 +0000</created>
                <updated>Fri, 15 Mar 2019 22:22:46 +0000</updated>
                            <resolved>Mon, 1 Oct 2018 14:49:27 +0000</resolved>
                                                                    <component>netconf</component>
                        <due></due>
                            <votes>1</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="40230" author="tcere" created="Tue, 17 Oct 2017 14:06:22 +0000"  >&lt;p&gt;There is no reason to pull in odl-netconf-connector-ssh unless you are using config subsystem still. unimgr should move towards odl-netconf-topology.&lt;br/&gt;
odl-netconf-clustered-topology and odl-netconf-topology are still considered incompatible but unless you are spawning a netconf connector which shouldnt happen in SFT it wont fail it.&lt;/p&gt;</comment>
                            <comment id="59798" author="vorburger" created="Thu, 26 Oct 2017 11:46:11 +0000"  >&lt;p&gt;distribution jobs fail A LOT due to this, and IMHO that&apos;s a PITA that is blocking productivity for everyone, and untenable.&lt;/p&gt;

&lt;p&gt;unimgr-dev has not reacted to &lt;a href=&quot;https://lists.opendaylight.org/pipermail/unimgr-dev/2017-October/000470.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/unimgr-dev/2017-October/000470.html&lt;/a&gt; in 24 hours, and I would therefore like to propose &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/64761/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/64761/&lt;/a&gt; to work around this. Objections, anyone?&lt;/p&gt;</comment>
                            <comment id="59805" author="vrpolak" created="Thu, 26 Oct 2017 15:39:38 +0000"  >&lt;p&gt;Currently I think Change-Id I9c80c4dd5c43365d4d46f2b5bf89dd1f0f22f57f &lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt; is stable enough (and better overall).&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/I9c80c4dd5c43365d4d46f2b5bf89dd1f0f22f57f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/I9c80c4dd5c43365d4d46f2b5bf89dd1f0f22f57f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="59814" author="vorburger" created="Fri, 27 Oct 2017 10:12:27 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/64797/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/64797/&lt;/a&gt; ?&lt;/p&gt;</comment>
                            <comment id="61771" author="roshnikk" created="Fri, 16 Mar 2018 10:03:16 +0000"  >&lt;p&gt;While installing the feature odl-netconf-clustered-topology (on a single node topology), the issue is still seen in Nitrogen SR2 also.&lt;/p&gt;

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

&lt;p&gt;Please find the karaf.log&lt;/p&gt;

&lt;p&gt;====================&lt;/p&gt;

&lt;p&gt;Exception in thread &quot;CommitFutures-2&quot; java.lang.IllegalStateException: RemoteDevice{controller-config}&#160; Transaction(init) not committed correctly&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceTopologyAdapter$1.onFailure(NetconfDeviceTopologyAdapter.java:243)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1228)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.lang.Thread.run(Thread.java:748)&lt;br/&gt;
Caused by: OptimisticLockFailedException{message=Optimistic lock failed., errorList=[RpcError &lt;span class=&quot;error&quot;&gt;&amp;#91;message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was created by other transaction.&amp;#93;&lt;/span&gt;]}&lt;br/&gt;
Exception in thread &quot;CommitFutures-0&quot;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:731)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:769)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:716)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:799)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:90)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:729)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:333)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:44)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.actor.Actor$class.aroundReceive(Actor.scala:502)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:727)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.actor.ActorCell.invoke(ActorCell.scala:495)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.dispatch.Mailbox.run(Mailbox.scala:224)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at akka.dispatch.Mailbox.exec(Mailbox.scala:234)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;br/&gt;
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was created by other transaction.&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:174)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:128)&lt;br/&gt;
&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)&lt;/p&gt;

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

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

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

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="65106" author="jmorvay" created="Mon, 1 Oct 2018 14:48:45 +0000"  >&lt;p&gt;This should be fixed with &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/64797/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/64797/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nitrogen is no longer supported, closing this issue.&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>9307</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=9307]]></customfieldvalue>

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

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