<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:23:47 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-1324] OptimisticLockFailedException.../flow/flow...id=L3.53688268439021.20.0L3</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-1324</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&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;org.opendaylight.mdsal.common.api.OptimisticLockFailedException: Optimistic lock failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:53688268439021}]/AugmentationIdentifier{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)serial-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-group, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)port-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow:inventory?revision=2013-08-19)table-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=20}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=L3.53688268439021.20.0L3.}]

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="30163">NETVIRT-1324</key>
            <summary>OptimisticLockFailedException.../flow/flow...id=L3.53688268439021.20.0L3</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="5" iconUrl="https://jira.opendaylight.org/images/icons/priorities/trivial.svg">Lowest</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="10000">Done</resolution>
                                        <assignee username="vorburger">Michael Vorburger</assignee>
                                    <reporter username="shague">Sam Hague</reporter>
                        <labels>
                            <label>csit:3node</label>
                    </labels>
                <created>Tue, 19 Jun 2018 21:16:02 +0000</created>
                <updated>Mon, 17 Sep 2018 19:13:57 +0000</updated>
                            <resolved>Mon, 17 Sep 2018 19:13:57 +0000</resolved>
                                                    <fixVersion>Fluorine</fixVersion>
                    <fixVersion>Neon</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="63773" author="jluhrsen" created="Thu, 28 Jun 2018 06:19:34 +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; is this just an exception from CSIT that we turned in to a jira? No real context to go on&lt;br/&gt;
right? Will someone be able to address it with just the exception line?&lt;/p&gt;</comment>
                            <comment id="63797" author="vorburger" created="Thu, 28 Jun 2018 17:01:50 +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; I could probably help with this this one (by adding retry), but the log above is too minimalistic to be actionable - we would need a full stack trace, to see where in the code that OptimisticLockFailedException comes from. If that&apos;s not available, I propose that you close this issue, and a new one be opened with details, when available.&lt;/p&gt;</comment>
                            <comment id="63803" author="shague@redhat.com" created="Thu, 28 Jun 2018 20:32:41 +0000"  >&lt;p&gt;I normally add the job and the karaf logs that this came from. I will try to dig it up.&lt;/p&gt;</comment>
                            <comment id="63804" author="shague@redhat.com" created="Thu, 28 Jun 2018 20:36:00 +0000"  >&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; adding a retry - does that mean an exception would not come out until the last retry failed? Similar to other exceptions you fixed a while back with the retry framework?&lt;/p&gt;

&lt;p&gt;Other question: that is the right behavior, right? OLFE is not a problem in itself since you could have multiple writers, so you retry and hope it passes. Or is this a design issue that should be fixed not to have multiple writers to the same tree data?&lt;/p&gt;</comment>
                            <comment id="63845" author="vorburger" created="Mon, 2 Jul 2018 11:40:02 +0000"  >&lt;p&gt;&amp;gt; does that mean an exception would not come out until the last retry failed?&#160;&lt;/p&gt;

&lt;p&gt;yup; that&apos;s what the &lt;a href=&quot;https://github.com/opendaylight/genius/blob/master/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/genius/blob/master/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java&lt;/a&gt;&#160;does (see &lt;a href=&quot;https://github.com/opendaylight/genius/blob/master/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunnerImpl.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/genius/blob/master/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunnerImpl.java&lt;/a&gt;&#160;for details)&lt;/p&gt;

&lt;p&gt;&amp;gt;&#160;&#160;that is the right behavior, right? OLFE is not a problem in itself since you could have multiple writers, so you retry and hope it passes.&lt;/p&gt;

&lt;p&gt;It will fix the problem, is very easy to do (you should try doing it yourself!), and is what we have done elsewhere.&lt;/p&gt;

&lt;p&gt;&amp;gt; Or is this a design issue that should be fixed not to have multiple writers to the same tree data?&lt;/p&gt;

&lt;p&gt;You can also fix this issue that way, but that is a much bigger design change (if it&apos;s even possible).&lt;/p&gt;</comment>
                            <comment id="64627" author="jluhrsen" created="Tue, 14 Aug 2018 16:34:24 +0000"  >&lt;p&gt;this is still happening, but it&apos;s possible that it&apos;s not affecting functionality. Without more context, it will be hard for someone like &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; to look at it.&lt;/p&gt;

&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; can you dig up a karaf.log that has this?&lt;/p&gt;</comment>
                            <comment id="64704" author="shague@redhat.com" created="Tue, 21 Aug 2018 21:47:27 +0000"  >&lt;p&gt;still happening, will add further triage: &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen/31/odl_1/odl1_err_warn_exception.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-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen/31/odl_1/odl1_err_warn_exception.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-08-13T05:08:13,967 | WARN  | opendaylight-cluster-data-akka.actor.default-dispatcher-5 | LocalThreePhaseCommitCohort      | 235 - org.opendaylight.controller.sal-distributed-datastore - 1.7.4 | Failed to prepare transaction member-1-datastore-config-fe-0-txn-112-0 on backend
org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException: Optimistic lock failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:119324593392072}]/AugmentationIdentifier{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)serial-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-group, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)port-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow:inventory?revision=2013-08-19)table-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=20}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=L3.119324593392072.20.0L3.}]
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was created by other transaction.
2018-08-13T05:08:32,925 | WARN  | pool-89-thread-1 | OutboundQueueEntry               | 389 - org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl - 0.6.4 | Can&apos;t commit a completed message.
2018-08-13T05:08:32,925 | WARN  | pool-89-thread-1 | HashedWheelTimer                 | 62 - io.netty.common - 4.1.22.Final | An exception was thrown by TimerTask.
java.lang.NullPointerException: null
2018-08-13T05:09:00,106 | WARN  | epollEventLoopGroup-9-2 | HandshakeManagerImpl             | 380 - org.opendaylight.openflowplugin.impl - 0.6.4 | issuing disconnect during handshake [/10.30.170.201:56960]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="64827" author="vorburger" created="Tue, 28 Aug 2018 16:44:20 +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; et al, so as discussed during the Kernel Projects call today:&lt;/p&gt;

&lt;p&gt;In&#160;&lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1855&quot; title=&quot;Controller should not error log any OptimisticLockFailedException which applications actually handle&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1855&quot;&gt;&lt;del&gt;CONTROLLER-1855&lt;/del&gt;&lt;/a&gt;, it was decided that WARN from&#160;LocalThreePhaseCommitCohort was &quot;benign&quot; and could be ignored - if applications handled it; in this case, whatever writes to opendaylight:flow:inventory needs to&#160;retry&#160;the failed future; see below. (I had argued in the discussion of that bug that it should therefore just be an INFO or even DEBUG intead of a WARN; but it was decided that it&apos;s safer to keep it as a WARN, but not ERROR.)&lt;/p&gt;

&lt;p&gt;So the (first; others are totally unrelated to this issue!) WARN shown above should be ignored. What still does need to be looked into in this issue is these two ERROR logs; this first one is directly related to that WARN on&#160;opendaylight:flow:inventory:&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-08-13T05:42:03,918 | ERROR | CommitFutures-30 | JobCoordinatorImpl               | 281 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.4 | Job still failed on final retry: JobEntry{key=&apos;MAC-FA:16:3E:D2:50:A7 ELAN_TAG-5006DPN_ID-119324593392072&apos;, mainWorker=org.opendaylight.netvirt.elan.internal.ElanPacketInHandler$$Lambda$1757/325670119@164ed935, rollbackWorker=null, retryCount=3/3, futures=[org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker$AsyncNotifyingSettableFuture@534c5598[status=FAILURE, cause=[OptimisticLockFailedException{message=Optimistic lock failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:119324593392072}]/AugmentationIdentifier{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)serial-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-group, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)port-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow:inventory?revision=2013-08-19)table-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50500611932459339207227FA:16:3E:D2:50:A7}], errorList=[RpcError [message=Optimistic lock failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:119324593392072}]/AugmentationIdentifier{childNames=[(urn:opendaylight:flow:inventory?revision=2013-08-19)description, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-actions, (urn:opendaylight:flow:inventory?revision=2013-08-19)hardware, (urn:opendaylight:flow:inventory?revision=2013-08-19)switch-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-instructions, (urn:opendaylight:flow:inventory?revision=2013-08-19)meter, (urn:opendaylight:flow:inventory?revision=2013-08-19)serial-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)stale-group, (urn:opendaylight:flow:inventory?revision=2013-08-19)supported-match-types, (urn:opendaylight:flow:inventory?revision=2013-08-19)port-number, (urn:opendaylight:flow:inventory?revision=2013-08-19)table, (urn:opendaylight:flow:inventory?revision=2013-08-19)group, (urn:opendaylight:flow:inventory?revision=2013-08-19)manufacturer, (urn:opendaylight:flow:inventory?revision=2013-08-19)table-features, (urn:opendaylight:flow:inventory?revision=2013-08-19)software, (urn:opendaylight:flow:inventory?revision=2013-08-19)ip-address]}/(urn:opendaylight:flow:inventory?revision=2013-08-19)table/table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=50500611932459339207227FA:16:3E:D2:50:A7}], severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]}]]]}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;whereas this other one is separate:&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-08-13T07:29:52,155 | ERROR | opendaylight-cluster-data-notification-dispatcher-76 | UpgradeUtils                     | 266 - org.opendaylight.genius.mdsalutil-impl - 0.4.4 | Unable to update UpgradeState
java.util.concurrent.ExecutionException: OptimisticLockFailedException{message=Optimistic lock failed for path /(urn:opendaylight:serviceutils:upgrade?revision=2018-07-02)upgrade-config, errorList=[RpcError [message=Optimistic lock failed for path /(urn:opendaylight:serviceutils:upgrade?revision=2018-07-02)upgrade-config, severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.]]}
Caused by: org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException: Optimistic lock failed for path /(urn:opendaylight:serviceutils:upgrade?revision=2018-07-02)upgrade-config
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="64834" author="vorburger" created="Thu, 30 Aug 2018 11:08:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/GENIUS-207&quot; title=&quot;UpgradeUtils OptimisticLockFailedException&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GENIUS-207&quot;&gt;&lt;del&gt;GENIUS-207&lt;/del&gt;&lt;/a&gt; will track the solution to the OLFE in genius UpgradeState.&lt;/p&gt;

&lt;p&gt;This bug will track netvirt.elan.internal.ElanPacketInHandler flow inventory job OLFE.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="30510">CONTROLLER-1855</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28842">NETVIRT-1015</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>NETVIRT-996</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03frj:</customfieldvalue>

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