<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:45 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>[CONTROLLER-1128] Clustering: ConcurrentModificationException in TransactionProxy</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1128</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The following exception was seen:&lt;/p&gt;

&lt;p&gt;2015-01-27 10:58:23,674 | ERROR | lt-dispatcher-14 | Dispatcher                       | 168 - com.typesafe.akka.slf4j - 2.3.4 | &lt;br/&gt;
java.util.ConcurrentModificationException&lt;br/&gt;
	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_71&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.ArrayList$Itr.next(ArrayList.java:831)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_71&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.TransactionProxy$TransactionFutureCallback.onComplete(TransactionProxy.java:682)&lt;span class=&quot;error&quot;&gt;&amp;#91;182:org.opendaylight.controller.sal-distributed-datastore:1.1.2.PACNET&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.OnComplete.internal(Future.scala:247)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.OnComplete.internal(Future.scala:244)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.japi$CallbackBridge.apply(Future.scala:174)&lt;span class=&quot;error&quot;&gt;&amp;#91;167:com.typesafe.akka.actor:2.3.4&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;From the mailing list:&lt;/p&gt;

&lt;p&gt;Here is chain of events that lead to ConcurrentModificationException:&lt;/p&gt;

&lt;p&gt;1. TransactionOperation created in TransactionProxy.read method is invoked. Method invoke of this TransactionOperation call Futures.addCallback.&lt;br/&gt;
2. Few frames down the stack this call result in com.google.common.util.concurrent.AbstractFuture.addListener being executed, which call executionList.add.&lt;br/&gt;
3. Looks like when future finish execution before listener gets added to ListenableFuture, further additions of listeners to ListenableFuture will execute listener methods immediately. Looks like this situation is uncommon, but nevertheless happen from time to time. So, executionList.add call FutureCallback.onSuccess method of anonymous class created in TransactionProxy.read in the same thread in which iteration over txOperationsOnComplete happen.&lt;br/&gt;
4. FutureCallback.onSuccess from TransactionProxy.read will update proxyFuture in same thread in which iteration over txOperationsOnComplete happen.&lt;br/&gt;
5. This will execute FutureCallback.onSuccess which we wrote (we use Futures.transform on future returned by ReadWriteTransaction.read), and in this listener we call ReadWriteTransaction.put.&lt;br/&gt;
6. ReadWriteTransaction.put will result in TransactionFutureCallback.addTxOperationOnComplete being called in the same thread in which iteration over txOperationsOnComplete happen.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25682">CONTROLLER-1128</key>
            <summary>Clustering: ConcurrentModificationException in TransactionProxy</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="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="tpantelis">Tom Pantelis</reporter>
                        <labels>
                    </labels>
                <created>Wed, 28 Jan 2015 14:08:07 +0000</created>
                <updated>Tue, 3 Feb 2015 03:41:54 +0000</updated>
                            <resolved>Tue, 3 Feb 2015 03:41:54 +0000</resolved>
                                    <version>Post-Helium</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="50077" author="tpantelis" created="Thu, 29 Jan 2015 03:32:04 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/14591/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/14591/&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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2650</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=2650]]></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="10315"><![CDATA[Lithium]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10301"><![CDATA[Normal]]></customfieldvalue>

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

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