<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:12:21 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>[BGPCEP-211] &quot;Transaction factory was closed&quot; after BGP connection closed</title>
                <link>https://jira.opendaylight.org/browse/BGPCEP-211</link>
                <project id="10108" key="BGPCEP">bgpcep</project>
                    <description>&lt;p&gt;Tested on Lithium, build &lt;a href=&quot;http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.3.0-SNAPSHOT/distribution-karaf-0.3.0-20150421.015145-1180.tar.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.3.0-SNAPSHOT/distribution-karaf-0.3.0-20150421.015145-1180.tar.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Steps to reproduce:&lt;/p&gt;

&lt;p&gt;1. Prepare ODL: Change featuresBoot to contain only &quot;odl-restconf&quot; and &quot;odl-bgpcep-bgp-all&quot;.&lt;br/&gt;
2. Place the file 41-bgp-example.xml from the attached archive into etc/opendaylight/karaf subdirectory of the ODL installation.&lt;br/&gt;
3. Boot ODL.&lt;br/&gt;
4. Wait for the empty topology to appear:&lt;br/&gt;
     curl -u &apos;admin:admin&apos; 127.0.0.2:8181/restconf/operational/network-topology:network-topology/topology/example-ipv4-topology &amp;gt;curl-000.out&lt;br/&gt;
   (you should get a &quot;curl-000.out&quot; file that is around 100 bytes long)&lt;br/&gt;
5. Start the &quot;play.py&quot; tool from the archive:&lt;br/&gt;
     python play.py --gencount=2&lt;br/&gt;
6. After the tool responds with &quot;Sending completed&quot;, verify that the routes are in topology:&lt;br/&gt;
     curl -u &apos;admin:admin&apos; 127.0.0.2:8181/restconf/operational/network-topology:network-topology/topology/example-ipv4-topology &amp;gt;curl-001.out&lt;br/&gt;
   (the file curl-001.out shall now be around 240 bytes long)&lt;br/&gt;
7. Go to the terminal window with the &quot;play.py&quot; tool and hit Ctrl-C to terminate it.&lt;br/&gt;
8. Verify that the topology is now empty:&lt;br/&gt;
     curl -u &apos;admin:admin&apos; 127.0.0.2:8181/restconf/operational/network-topology:network-topology/topology/example-ipv4-topology &amp;gt;curl-003.out&lt;br/&gt;
   (you should get a &quot;curl-003.out&quot; file that is the same as &quot;curl-000.out&quot;)&lt;br/&gt;
9. Start the &quot;play.py&quot; tool again:&lt;br/&gt;
     python play.py --gencount=2&lt;br/&gt;
10. Look at the topology again:&lt;br/&gt;
      curl -u &apos;admin:admin&apos; 127.0.0.2:8181/restconf/operational/network-topology:network-topology/topology/example-ipv4-topology &amp;gt;curl-004.out&lt;br/&gt;
11. The &quot;curl-004.out&quot; produced with step 10 shall be the same as &quot;curl-001.out&quot; produced in step 6 but it is the same as &quot;curl-000.out&quot; and &quot;curl-003.out&quot; (i.e. empty) instead.&lt;br/&gt;
12. Looking into logs you will now see this exception (note the &quot;Transaction factory was closed&quot; message below):&lt;/p&gt;

&lt;p&gt;2015-04-22 11:15:38,025 | WARN  | oupCloseable-3-2 | DefaultChannelPipeline           | 154 - io.netty.common - 4.0.26.Final | An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.&lt;br/&gt;
io.netty.channel.ChannelPipelineException: org.opendaylight.protocol.bgp.rib.impl.BGPSessionImpl.handlerAdded() has thrown an exception; removed.&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:501)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded(DefaultChannelPipeline.java:482)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.replace0(DefaultChannelPipeline.java:455)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.replace(DefaultChannelPipeline.java:405)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.replace(DefaultChannelPipeline.java:372)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.framework.AbstractSessionNegotiator.negotiationSuccessful(AbstractSessionNegotiator.java:46)&lt;span class=&quot;error&quot;&gt;&amp;#91;156:org.opendaylight.controller.protocol-framework:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.handleMessage(AbstractBGPSessionNegotiator.java:147)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.handleMessage(AbstractBGPSessionNegotiator.java:42)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.framework.AbstractSessionNegotiator.channelRead(AbstractSessionNegotiator.java:93)&lt;span class=&quot;error&quot;&gt;&amp;#91;156:org.opendaylight.controller.protocol-framework:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)&lt;span class=&quot;error&quot;&gt;&amp;#91;179:io.netty.codec:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)&lt;span class=&quot;error&quot;&gt;&amp;#91;179:io.netty.codec:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)&lt;span class=&quot;error&quot;&gt;&amp;#91;154:io.netty.common:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)&lt;span class=&quot;error&quot;&gt;&amp;#91;154:io.netty.common:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_65&amp;#93;&lt;/span&gt;&lt;br/&gt;
Caused by: java.lang.IllegalStateException: Transaction factory was closed. No further operations allowed.&lt;br/&gt;
	at com.google.common.base.Preconditions.checkState(Preconditions.java:173)&lt;span class=&quot;error&quot;&gt;&amp;#91;37:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.md.sal.dom.broker.impl.AbstractDOMForwardedTransactionFactory.checkNotClosed(AbstractDOMForwardedTransactionFactory.java:233)&lt;span class=&quot;error&quot;&gt;&amp;#91;192:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.md.sal.dom.broker.impl.AbstractDOMForwardedTransactionFactory.newWriteOnlyTransaction(AbstractDOMForwardedTransactionFactory.java:149)&lt;span class=&quot;error&quot;&gt;&amp;#91;192:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.AdjRibInWriter.transform(AdjRibInWriter.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.BGPPeer.onSessionUp(BGPPeer.java:187)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.BGPPeer.onSessionUp(BGPPeer.java:65)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.bgp.rib.impl.BGPSessionImpl.sessionUp(BGPSessionImpl.java:368)&lt;span class=&quot;error&quot;&gt;&amp;#91;236:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.protocol.framework.AbstractProtocolSession.handlerAdded(AbstractProtocolSession.java:58)&lt;span class=&quot;error&quot;&gt;&amp;#91;156:org.opendaylight.controller.protocol-framework:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:488)&lt;span class=&quot;error&quot;&gt;&amp;#91;153:io.netty.transport:4.0.26.Final&amp;#93;&lt;/span&gt;&lt;br/&gt;
	... 25 more&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="23451">BGPCEP-211</key>
            <summary>&quot;Transaction factory was closed&quot; after BGP connection closed</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="dkutenicsova">Dana Kutenicsova</assignee>
                                    <reporter username="jbehran@cisco.com">Jozef Behran</reporter>
                        <labels>
                    </labels>
                <created>Wed, 22 Apr 2015 09:57:20 +0000</created>
                <updated>Sun, 3 Mar 2019 11:50:25 +0000</updated>
                            <resolved>Tue, 8 Sep 2015 13:55:48 +0000</resolved>
                                    <version>Bugzilla Migration</version>
                                    <fixVersion>Bugzilla Migration</fixVersion>
                                    <component>BGP</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="44940" author="jbehran@cisco.com" created="Wed, 22 Apr 2015 09:57:20 +0000"  >&lt;p&gt;Attachment tools.tar.xz has been added with description: Archive with tools necessary to replicate the problem&lt;/p&gt;</comment>
                            <comment id="44936" author="jbehran@cisco.com" created="Wed, 22 Apr 2015 11:16:04 +0000"  >&lt;p&gt;Further experiments revealed&lt;/p&gt;</comment>
                            <comment id="44937" author="jbehran@cisco.com" created="Wed, 22 Apr 2015 11:27:23 +0000"  >&lt;p&gt;Further experiments revealed additional behaviors of the bug:&lt;/p&gt;

&lt;p&gt;1. It does not matter whether the CEASE/CLIENT DECONFIGURED/whatever NOTIFICATION message was received or not, as soon as the connection is closed, the BGP is dead.&lt;br/&gt;
2. If multiple clients connect, they will be able to push their updates without problems. But if ANY ONE of them disconnects, the BGP dies and no more updates will be received. If any of the additional clients which managed to get their updates through disconnects, its updates will be deleted correctly.&lt;br/&gt;
3. If a peer connection is closed due to missing KEEPALIVE, the BGP dies as well.&lt;/p&gt;

&lt;p&gt;It seems to me that no matter how the connection dies, once a connection dies, the BGP dies with it.&lt;/p&gt;</comment>
                            <comment id="44941" author="cdgasparini" created="Wed, 13 May 2015 08:27:21 +0000"  >&lt;p&gt;Attachment Logs.txt has been added with description: Logs with log DEBUG level&lt;/p&gt;</comment>
                            <comment id="44938" author="cdgasparini" created="Wed, 13 May 2015 08:28:25 +0000"  >&lt;p&gt;Attached logs after reproduce the issue.&lt;br/&gt;
If Karaf is started on debug, it wont work even first steps.&lt;/p&gt;</comment>
                            <comment id="44939" author="dkutenicsova" created="Wed, 13 May 2015 12:49:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/20249/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/20249/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/20250&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/20250&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13114" name="Logs.txt" size="16225" author="claudio.gasparini@pantheon.tech" created="Wed, 13 May 2015 08:27:21 +0000"/>
                            <attachment id="13113" name="tools.tar.xz" size="4892" author="jbehran@cisco.com" created="Wed, 22 Apr 2015 09:57: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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3043</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=3043]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

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

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

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