<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:26 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-1005] Clustering: Write Tx commit may fail with an error stating the Tx has already been sealed</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1005</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;While running the DistributeDataStoreIntergrationTest repeatedly in a script, I found an intermittent failure that occurred a couple times after 20-30 successful runs.&lt;/p&gt;

&lt;p&gt;The failure occurred each time in testWriteTransactionWithMultipleShards with an IllegalStateException stating that the transaction has already been sealed. This means that a modification operation (put/merge/delete) was done after the transaction was submitted. However the sequence of calls in the test is valid, i.e. it simply creates a write Tx, makes 2 write calls and calls ready. &lt;/p&gt;

&lt;p&gt;After debugging, I found a timing bug in the TransactionProxy.TransactionFutureCallback inner class. On each operation, it first checks if a Tx has been created in the related shard yet (via a non-null TransactionContext instance), otherwise an TransactionFutureCallback instance is created, which initiates the shard Tx creation async, and the operation is cached in the TransactionFutureCallback to be executed when Tx create finishes. The operations are cached in a List to preserve order with synchronization. However there is a small timing window where the operation method may see a non-null TransactionContext but the TransactionFutureCallback hasn&apos;t finished executing the previous operations. In this case, the operation method will execute the operation directly in the TransactionContext. This can cause an operation to be performed out-of-order. In the test failure, the ready operation was performed before the write.&lt;/p&gt;

&lt;p&gt;The solution is to only publish the TransactionContext instance in TransactionFutureCallback after it has finished executing the cached operations.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25559">CONTROLLER-1005</key>
            <summary>Clustering: Write Tx commit may fail with an error stating the Tx has already been sealed</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>Thu, 6 Nov 2014 19:01:01 +0000</created>
                <updated>Sat, 15 Nov 2014 14:44:05 +0000</updated>
                            <resolved>Sat, 15 Nov 2014 14:44:05 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="49755" author="tpantelis" created="Thu, 6 Nov 2014 20:46:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/12584/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/12584/&lt;/a&gt; - Helium&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/12581/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/12581/&lt;/a&gt; - master&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="25570">CONTROLLER-1016</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2337</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=2337]]></customfieldvalue>

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

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

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