<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:01 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-830] Flood of &quot;IllegalStateException: complete already&quot;</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-830</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;We use ODL netconf topology. It failed to establish connection to Netconf server because of folowing error.&lt;br/&gt;
&#160;&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;AbstractNetconfSessionNegotiator - Failed to send message &amp;lt;hello xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;
 &#160;&#160;&#160;&amp;lt;capabilities&amp;gt;
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&amp;lt;capability&amp;gt;urn:ietf:params:netconf:capability:exi:1.0&amp;lt;/capability&amp;gt;
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&amp;lt;capability&amp;gt;urn:ietf:params:netconf:base:1.1&amp;lt;/capability&amp;gt;
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&amp;lt;capability&amp;gt;urn:ietf:params:netconf:base:1.0&amp;lt;/capability&amp;gt;
 &#160;&#160;&#160;&amp;lt;/capabilities&amp;gt;
&amp;lt;/hello&amp;gt;
java.lang.IllegalStateException: Channel closed
        at org.opendaylight.netconf.nettyutil.handler.ssh.client.AsyncSshHandlerWriter.write(AsyncSshHandlerWriter.java:64) ~[netconf-netty-util-1.13.4.jar:?]
        at org.opendaylight.netconf.nettyutil.handler.ssh.client.AsyncSshHandler.write(AsyncSshHandler.java:188) ~[netconf-netty-util-1.13.4.jar:?]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then logs were flooded with exceptions:&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;[WARN ] 2021-11-09 17:09:36.562 [nioEventLoopGroup-3-1] AbstractChannelHandlerContext - An exception &apos;java.lang.IllegalStateException: complete already: NetconfSessionPromise@546106c5(failure: java.lang.IllegalStateException: Channel closed)&apos; [enable DEBUG level for full &#160;
stacktrace] was thrown by a user handler&apos;s exceptionCaught() method while handling the following exception:
java.lang.IllegalStateException: complete already: NetconfSessionPromise@546106c5(failure: java.lang.IllegalStateException: Channel closed)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:112) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator.negotiationFailed(AbstractNetconfSessionNegotiator.java:290) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator.channelRead(AbstractNetconfSessionNegotiator.java:330) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:370) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) [netty-transport-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalStateException: complete already: NetconfSessionPromise@546106c5(failure: java.lang.IllegalStateException: Channel closed)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.DefaultPromise.setSuccess(DefaultPromise.java:99) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.NetconfSessionPromise.setSuccess(NetconfSessionPromise.java:79) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.NetconfSessionPromise.setSuccess(NetconfSessionPromise.java:27) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator.negotiationSuccessful(AbstractNetconfSessionNegotiator.java:284) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.client.NetconfClientSessionNegotiator.handleMessage(NetconfClientSessionNegotiator.java:93) ~[netconf-client-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator.channelRead(AbstractNetconfSessionNegotiator.java:327) ~[netconf-netty-util-1.13.4.jar:?]
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;... 20 more
Nov 09, 2021 5:09:36 PM com.google.common.util.concurrent.AbstractFuture executeListener
SEVERE: RuntimeException while executing runnable CallbackListener{org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$1@7230cd8c} with executor MoreExecutors.directExecutor()
java.lang.IllegalStateException: Already initialized
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.base.Preconditions.checkState(Preconditions.java:508)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalProvider$MountInstance.onTopologyDeviceConnected(NetconfDeviceSalProvider.java:127)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalFacade.onDeviceConnected(NetconfDeviceSalFacade.java:87)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalFacade.onDeviceConnected(NetconfDeviceSalFacade.java:43)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.handleSalInitializationSuccess(NetconfDevice.java:262)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$1.onSuccess(NetconfDevice.java:184)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at org.opendaylight.netconf.sal.connect.netconf.NetconfDevice$1.onSuccess(NetconfDevice.java:181)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1089)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1174)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:969)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractFuture.setFuture(AbstractFuture.java:800)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.setResult(AbstractTransformFuture.java:224)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.setResult(AbstractTransformFuture.java:202)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:163)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at com.google.common.util.concurrent.MoreExecutors$5$1.run(MoreExecutors.java:1091)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;at java.base/java.lang.Thread.run(Thread.java:829)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It wasn&apos;t possible to make netconf connect again with deleting and creating mount point again.&lt;/p&gt;

&lt;p&gt;We checked, that netconf server is running and we were able to send netconf RPCs via ssh.&lt;/p&gt;</description>
                <environment></environment>
        <key id="34911">NETCONF-830</key>
            <summary>Flood of &quot;IllegalStateException: complete already&quot;</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="10002">Duplicate</resolution>
                                        <assignee username="ivanhrasko">Ivan Hrasko</assignee>
                                    <reporter username="andmak">Andrej Mak</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Wed, 10 Nov 2021 10:19:17 +0000</created>
                <updated>Thu, 18 Nov 2021 11:43:25 +0000</updated>
                            <resolved>Thu, 18 Nov 2021 11:42:58 +0000</resolved>
                                    <version>1.13.4</version>
                                    <fixVersion>2.0.4</fixVersion>
                    <fixVersion>1.13.6</fixVersion>
                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="70124" author="ivanhrasko" created="Wed, 10 Nov 2021 11:29:51 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=andmak&quot; class=&quot;user-hover&quot; rel=&quot;andmak&quot;&gt;andmak&lt;/a&gt; Are there steps how to reproduce the issue?&lt;/p&gt;</comment>
                            <comment id="70125" author="andmak" created="Wed, 10 Nov 2021 12:35:02 +0000"  >&lt;p&gt;There are no simple steps. Issue happens only on some of tens of devices.&lt;/p&gt;

&lt;p&gt;I think it is related to reconnecting - if something goes wrong, netconf tries to reconnect, but fails to update netconf mountpoint session state(java.lang.IllegalStateException: Already initialized).&lt;/p&gt;</comment>
                            <comment id="70128" author="ivanhrasko" created="Wed, 10 Nov 2021 18:46:45 +0000"  >&lt;p&gt;Are you using clustered NETCONF topology with 3-node cluster?&lt;/p&gt;

&lt;p&gt;Is it possible that your leader node has changed during the process?&lt;/p&gt;</comment>
                            <comment id="70129" author="ivanhrasko" created="Wed, 10 Nov 2021 18:49:31 +0000"  >&lt;p&gt;You write: It wasn&apos;t possible to make netconf connect again with deleting and creating mount point again.&lt;/p&gt;

&lt;p&gt;Have you also checked OPERATIONAL data?&lt;/p&gt;

&lt;p&gt;When you delete device from CONFIG data is it deleted from OPERATIONAL as well?&lt;/p&gt;

&lt;p&gt;When you create device in OPERATIONAL is it created in OPERATIONAL as well?&lt;/p&gt;</comment>
                            <comment id="70130" author="rovarga" created="Wed, 10 Nov 2021 19:01:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-784&quot; title=&quot;ReconnectPromise keep reconnecting after device unregistered&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-784&quot;&gt;&lt;del&gt;NETCONF-784&lt;/del&gt;&lt;/a&gt; might be &lt;a href=&quot;https://github.com/opendaylight/netconf/commit/86ea92e3769dc513b4c488726d318d939434eed7#diff-1742b8a062a6c3d8e746addd6d1a348b7667e8fddc15efeabde1bf917ca467b0R172&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the same thing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt; &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=andmak&quot; class=&quot;user-hover&quot; rel=&quot;andmak&quot;&gt;andmak&lt;/a&gt; can you repro with netconf-2.0.8? &lt;/p&gt;</comment>
                            <comment id="70131" author="andmak" created="Thu, 11 Nov 2021 08:02:06 +0000"  >&lt;p&gt;We don&apos;t use cluster.&lt;/p&gt;</comment>
                            <comment id="70132" author="andmak" created="Thu, 11 Nov 2021 08:03:52 +0000"  >&lt;p&gt;No, I haven&apos;t checked operational data. Reconnect just deletes config and then waits until MountPoint listener says, that mountpoint was removed. Then it creates same neconf node in config datastore again.&lt;/p&gt;</comment>
                            <comment id="70133" author="andmak" created="Thu, 11 Nov 2021 08:05:05 +0000"  >&lt;p&gt;I see, that fix version in linked issue is 2.0.4. Would testing with 2.0.5 be enough?&lt;/p&gt;</comment>
                            <comment id="70135" author="ivanhrasko" created="Thu, 11 Nov 2021 09:53:29 +0000"  >&lt;p&gt;The latest, the better - but probably yes &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/biggrin.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;</comment>
                            <comment id="70146" author="ivanhrasko" created="Mon, 15 Nov 2021 10:27:44 +0000"  >&lt;p&gt;I looks you are not the only one complaining on &quot;complete already&quot;: &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/98273&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/netconf/+/98273&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="70166" author="ivanhrasko" created="Tue, 16 Nov 2021 18:11:23 +0000"  >&lt;p&gt;OK, this patch is misleading.&lt;/p&gt;</comment>
                            <comment id="70167" author="ivanhrasko" created="Tue, 16 Nov 2021 18:18:41 +0000"  >&lt;p&gt;It is difficult to reproduce this issue but we can see that the problem with the first connection was on line:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
AsyncSshHandlerWriter.java:64&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It means the following code:&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
promise.setFailure(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; IllegalStateException(&lt;span class=&quot;code-quote&quot;&gt;&quot;Channel closed&quot;&lt;/span&gt;));&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Thus it is possible to simulate the issue by injecting a code that will invoke the same code as above when we are trying to establish connection to the device for the first time.&lt;/p&gt;

&lt;p&gt;Really, it was possible to reproduce the issue with the version 1.13.4, please see attached: &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/attachment/17005/17005_1.13.4-reproduced.karaf.log&quot; title=&quot;1.13.4-reproduced.karaf.log attached to NETCONF-830&quot;&gt;1.13.4-reproduced.karaf.log&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Steps to reproduce are:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;start the device&lt;/li&gt;
	&lt;li&gt;start controller (containing injected code) with installed netconf topology and restconf features&lt;/li&gt;
	&lt;li&gt;create device node in netconf topology&lt;/li&gt;
	&lt;li&gt;device is unable to connect (or sometimes successfully connected)&lt;/li&gt;
	&lt;li&gt;delete device from netconf topology&lt;/li&gt;
	&lt;li&gt;create device node in netconf topology&lt;/li&gt;
	&lt;li&gt;device is in connecting state on forever now&lt;/li&gt;
&lt;/ol&gt;


&lt;ul&gt;
	&lt;li&gt;sometimes we need to repeat steps 5 and 6 two times&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;With the current master branch - version 2.0.10-SNAPSHOT it is possible to observe behavior as we expect:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;device is unable to connect - because we injected the code to make first attempt to fail&lt;/li&gt;
	&lt;li&gt;after deleting device node from topology and creating it again the device is connected successfully&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;For example the version 2.0.4 is working, too.&lt;/p&gt;</comment>
                            <comment id="70168" author="ivanhrasko" created="Tue, 16 Nov 2021 18:24:40 +0000"  >&lt;p&gt;The cherry-picked code available &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/98573&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; for &lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-784&quot; title=&quot;ReconnectPromise keep reconnecting after device unregistered&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-784&quot;&gt;&lt;del&gt;NETCONF-784&lt;/del&gt;&lt;/a&gt; alone does not solve the problem on the Silicon branch (netconf 1.13.x branch).&lt;/p&gt;</comment>
                            <comment id="70170" author="ivanhrasko" created="Thu, 18 Nov 2021 10:27:22 +0000"  >&lt;p&gt;When the code available &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/98605&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; is applied the problem is fixed. It helps even when it is applied alone without any other cherry-pick on 1.13.4 version.&lt;/p&gt;</comment>
                            <comment id="70171" author="ivanhrasko" created="Thu, 18 Nov 2021 10:29:38 +0000"  >&lt;p&gt;It means that this issue can be fixed in the 1.13.6 version in Silicon SR4 and it is already fixed in the 2.0.4 version in Phosphorus-SR0.&lt;/p&gt;

&lt;p&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="34107">NETCONF-784</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="17005" name="1.13.4-reproduced.karaf.log" size="20770631" author="ivanhrasko" created="Tue, 16 Nov 2021 18:18:20 +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|i040lj:</customfieldvalue>

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