<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:14: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-85] Inconsistent COMMIT operation handling when no transactions are present</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-85</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;When the COMMIT RPC operation is requested and the &quot;candidate&quot; configuration does not differ from the &quot;running&quot; configuration, the following error is usually reported:&lt;/p&gt;

&lt;p&gt;&amp;lt;rpc-reply message-id=&quot;MMMM&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;error-type&amp;gt;application&amp;lt;/error-type&amp;gt;&lt;br/&gt;
&amp;lt;error-tag&amp;gt;operation-failed&amp;lt;/error-tag&amp;gt;&lt;br/&gt;
&amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;&lt;br/&gt;
&amp;lt;error-message&amp;gt;No candidateTransaction found for session YYYY&amp;lt;/error-message&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/p&gt;

&lt;p&gt;However when an operation was attempted and the operation fails (such as attempting to delete a nonexistent node), the commit will succeed but it shall fail. This fake success will repeat even when the commit operation is attempted again immediately.&lt;/p&gt;

&lt;p&gt;To hit the bug, run freshly extracted ODL, open a NETCONF connection, send the &quot;hello&quot; message (I don&apos;t know how to do that from a bash shell script, I always get &quot;java.lang.IllegalArgumentException: Additional header in wrong format &lt;span class=&quot;error&quot;&gt;&amp;#91;admin;0:0:0:0:0:0:0:1:56415;ssh;client;&amp;#93;&lt;/span&gt;, expected [(&amp;lt;username&amp;gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;^;&amp;#93;&lt;/span&gt;&lt;ins&gt;);(?&amp;lt;address&amp;gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0-9\.&amp;#93;&lt;/span&gt;&lt;/ins&gt;)&lt;span class=&quot;error&quot;&gt;&amp;#91;:/&amp;#93;&lt;/span&gt;(?&amp;lt;port&amp;gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0-9&amp;#93;&lt;/span&gt;&lt;ins&gt;);(?&amp;lt;transport&amp;gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;a-z&amp;#93;&lt;/span&gt;&lt;/ins&gt;)&lt;span class=&quot;error&quot;&gt;&amp;#91;^\]&amp;#93;&lt;/span&gt;+]&quot; after sending my &quot;hello&quot; message, the only way that works for me is using this suite in Gerrit: &lt;a href=&quot;https://git.opendaylight.org/gerrit/27672&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/27672&lt;/a&gt;, it reports one test failure with reference to this bug) and then send the following (the important thing is that it shall have no &amp;lt;modules&amp;gt; element in its running configuration when you try to do this, use &quot;&amp;lt;get-config&amp;gt;&amp;lt;source&amp;gt;&amp;lt;running/&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;/get-config&amp;gt;&quot; RPC request to verify that) (also beware, the requests here are NOT tested, the correct ones are in the Gerrit change just mentioned):&lt;/p&gt;

&lt;p&gt;&amp;lt;rpc message-id=&quot;1&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;edit-config xmlns:a=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;target&amp;gt;&amp;lt;candidate/&amp;gt;&amp;lt;/target&amp;gt;&lt;br/&gt;
&amp;lt;test-option&amp;gt;set&amp;lt;/test-option&amp;gt;&lt;br/&gt;
&amp;lt;default-operation&amp;gt;none&amp;lt;/default-operation&amp;gt;&lt;br/&gt;
&amp;lt;config xmlns:c=&quot;urn:opendaylight:params:xml:ns:yang:controller:config&quot;&amp;gt;&lt;br/&gt;
  &amp;lt;c:modules a:operation=&quot;delete&quot;/&amp;gt;&lt;br/&gt;
&amp;lt;/config&amp;gt;&lt;br/&gt;
&amp;lt;/edit-config&amp;gt;&lt;br/&gt;
&amp;lt;/rpc&amp;gt;&lt;br/&gt;
]]&amp;gt;]]&amp;gt;&lt;br/&gt;
&amp;lt;rpc message-id=&quot;2&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;commit/&amp;gt;&lt;br/&gt;
&amp;lt;/rpc&amp;gt;&lt;br/&gt;
]]&amp;gt;]]&amp;gt;&lt;br/&gt;
&amp;lt;rpc message-id=&quot;3&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;commit/&amp;gt;&lt;br/&gt;
&amp;lt;/rpc&amp;gt;&lt;/p&gt;

&lt;p&gt;You will obtain:&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;rpc-reply message-id=&quot;1&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;error-type&amp;gt;protocol&amp;lt;/error-type&amp;gt;&lt;br/&gt;
&amp;lt;error-tag&amp;gt;data-missing&amp;lt;/error-tag&amp;gt;&lt;br/&gt;
&amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;&lt;br/&gt;
&amp;lt;error-message&amp;gt;Data us missing, cannot execute DELETE operation&amp;lt;/error-message&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;br/&gt;
]]&amp;gt;]]&amp;gt;&lt;br/&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;rpc-reply message-id=&quot;2&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;ok/&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;br/&gt;
]]&amp;gt;]]&amp;gt;&lt;br/&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;rpc-reply message-id=&quot;3&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;ok/&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/p&gt;

&lt;p&gt;Note that the second and third messages are wrong, they should be:&lt;/p&gt;

&lt;p&gt;&amp;lt;rpc-reply message-id=&quot;2&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;error-type&amp;gt;application&amp;lt;/error-type&amp;gt;&lt;br/&gt;
&amp;lt;error-tag&amp;gt;operation-failed&amp;lt;/error-tag&amp;gt;&lt;br/&gt;
&amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;&lt;br/&gt;
&amp;lt;error-message&amp;gt;No candidateTransaction found for session 1&amp;lt;/error-message&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;br/&gt;
]]&amp;gt;]]&amp;gt;&lt;br/&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;rpc-reply message-id=&quot;3&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;error-type&amp;gt;application&amp;lt;/error-type&amp;gt;&lt;br/&gt;
&amp;lt;error-tag&amp;gt;operation-failed&amp;lt;/error-tag&amp;gt;&lt;br/&gt;
&amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;&lt;br/&gt;
&amp;lt;error-message&amp;gt;No candidateTransaction found for session 1&amp;lt;/error-message&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21098">NETCONF-85</key>
            <summary>Inconsistent COMMIT operation handling when no transactions are present</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@cisco.com">Jakub Morvay</assignee>
                                    <reporter username="jbehran@cisco.com">Jozef Behran</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Oct 2015 12:46:47 +0000</created>
                <updated>Fri, 15 Mar 2019 22:22:15 +0000</updated>
                            <resolved>Thu, 25 Feb 2016 17:11:02 +0000</resolved>
                                                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="38999" author="jmorvay@cisco.com" created="Thu, 14 Jan 2016 08:26:57 +0000"  >&lt;p&gt;According to netconf specification, specifically specification of candidate configuration capability &lt;a href=&quot;https://tools.ietf.org/html/rfc6241#section-8.3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc6241#section-8.3&lt;/a&gt;, commit operation effectively sets the running configuration to the current contents of the candidate configuration.&lt;/p&gt;

&lt;p&gt;So even if the candidate configuration is not different from running configuration, specification does not say that commit should fail. You can edit candidate configuration with edit-config operations and if one of them fails, specification does not say that commit should fail. &lt;/p&gt;

&lt;p&gt;Another question is why commits without prior edit-config operations fail with error message: &lt;br/&gt;
&amp;lt;rpc-reply message-id=&quot;MMMM&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;error-type&amp;gt;application&amp;lt;/error-type&amp;gt;&lt;br/&gt;
&amp;lt;error-tag&amp;gt;operation-failed&amp;lt;/error-tag&amp;gt;&lt;br/&gt;
&amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;&lt;br/&gt;
&amp;lt;error-message&amp;gt;No candidateTransaction found for session YYYY&amp;lt;/error-message&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/p&gt;

&lt;p&gt;Netconf specification does not mention notion of transactions, so maybe we should just return positive response:&lt;br/&gt;
&amp;lt;rpc-reply message-id=&quot;101&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;ok/&amp;gt;&lt;br/&gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/p&gt;</comment>
                            <comment id="39000" author="jmorvay@cisco.com" created="Thu, 14 Jan 2016 16:26:01 +0000"  >&lt;p&gt;Patches for config subsystem netconf northbound&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32595/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32595/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/32598&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/32598&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Patch for md-sal netconf northbound&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32575/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32575/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39001" author="jmorvay@cisco.com" created="Tue, 19 Jan 2016 09:01:37 +0000"  >&lt;p&gt;Patches for berrylium:&lt;/p&gt;

&lt;p&gt;Patches for config subsystem netconf northbound:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32940/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32940/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32939/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32939/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Patch for netconf md-sal northbound:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/32938/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/32938/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39002" author="jbehran@cisco.com" created="Thu, 18 Feb 2016 09:27:26 +0000"  >&lt;p&gt;Need to cherry-pick the patches to Lithium stable as well. See &lt;a href=&quot;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-userfeatures-all-stable-lithium/86/robot/report/log.html#s1-s2-s1-t18&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-userfeatures-all-stable-lithium/86/robot/report/log.html#s1-s2-s1-t18&lt;/a&gt; for an example of a failure.&lt;/p&gt;</comment>
                            <comment id="39003" author="tcere" created="Thu, 25 Feb 2016 17:11:02 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/34894/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/34894/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/34895/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/34895/&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_10207" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>External References</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>commit_no_transaction&lt;br/&gt;
commit_delete_not_existing_module&lt;br/&gt;
commit_remove_not_existing_module</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4455</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=4455]]></customfieldvalue>

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

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

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