<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:44:17 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>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-36853] Coordinator should resume coordinating commit for unfinished transactions on stepup</title>
                <link>https://jira.mongodb.org/browse/SERVER-36853</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Server changes:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;On step-up,
	&lt;ol&gt;
		&lt;li&gt;Wait for the coordinator catalog to drain.&lt;/li&gt;
		&lt;li&gt;Scan the coordinators table and for each document, if a corresponding TransactionCoordinator does not exist in the TransactionCoordinatorCatalog, create a TransactionCoordinator from the document, insert it into the catalog, and schedule a task to continue driving it to completion.&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Prevent external requests from reading the TransactionCoordinatorCatalog after stepup until the catalog has been populated from the durable state&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;If this ticket is completed before &quot;prepare&quot; is ready for failover testing, additional server changes:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Add an override to mongos to send coordinateCommit to the config server&lt;/li&gt;
	&lt;li&gt;Add an override to the config server to not remove TransactionCoordinators from the catalog on finishing coordinating a commit (because a coordinateCommit retry from mongos will not be able to recover the decision from a local participant)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;These overrides should be removed under &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37886&quot; title=&quot;Remove config server as coordinator crutch from coordinator stepdown targeted tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37886&quot;&gt;&lt;del&gt;SERVER-37886&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Testing&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Same node steps up after stepping down&lt;/li&gt;
	&lt;li&gt;Different node steps up after stepping down&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="594091">SERVER-36853</key>
            <summary>Coordinator should resume coordinating commit for unfinished transactions on stepup</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="esha.maharishi@mongodb.com">Esha Maharishi</assignee>
                                    <reporter username="matthew.saltz@mongodb.com">Matthew Saltz</reporter>
                        <labels>
                            <label>ShardedTxn:DistributedCommit</label>
                            <label>transaction-coordinator-management</label>
                    </labels>
                <created>Fri, 24 Aug 2018 17:59:18 +0000</created>
                <updated>Sun, 29 Oct 2023 22:28:39 +0000</updated>
                            <resolved>Tue, 11 Dec 2018 23:48:40 +0000</resolved>
                                                    <fixVersion>4.1.7</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2088598" author="xgen-internal-githook" created="Wed, 12 Dec 2018 17:09:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36853&quot; title=&quot;Coordinator should resume coordinating commit for unfinished transactions on stepup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36853&quot;&gt;&lt;del&gt;SERVER-36853&lt;/del&gt;&lt;/a&gt; Explicitly detach the futures chain in order to avoid unuchecked return value warning&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/76c82f567ff8783bd37fa1a34d62cecf0a367599&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/76c82f567ff8783bd37fa1a34d62cecf0a367599&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2087965" author="xgen-internal-githook" created="Wed, 12 Dec 2018 02:59:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Esha Maharishi&apos;, &apos;email&apos;: &apos;esha.maharishi@mongodb.com&apos;, &apos;username&apos;: &apos;EshaMaharishi&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36853&quot; title=&quot;Coordinator should resume coordinating commit for unfinished transactions on stepup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36853&quot;&gt;&lt;del&gt;SERVER-36853&lt;/del&gt;&lt;/a&gt; coordinateCommitTransaction should set the Client&apos;s last OpTime to the system last OpTime before returning a decision&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3b7720f9a4209e9b4b18f7d8e98f29b574775f76&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3b7720f9a4209e9b4b18f7d8e98f29b574775f76&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2087875" author="xgen-internal-githook" created="Tue, 11 Dec 2018 23:48:28 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Esha Maharishi&apos;, &apos;email&apos;: &apos;esha.maharishi@mongodb.com&apos;, &apos;username&apos;: &apos;EshaMaharishi&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36853&quot; title=&quot;Coordinator should resume coordinating commit for unfinished transactions on stepup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36853&quot;&gt;&lt;del&gt;SERVER-36853&lt;/del&gt;&lt;/a&gt; Coordinator should resume coordinating commit for unfinished transactions on stepup&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f948fbcf86d104d70889d7d6a1caa83b4d78a6a8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f948fbcf86d104d70889d7d6a1caa83b4d78a6a8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2075145" author="kaloian.manassiev" created="Thu, 29 Nov 2018 09:01:29 +0000"  >&lt;p&gt;The proposed implementation looks good, just a couple of questions:&lt;/p&gt;

&lt;p&gt;For 1.1 above - this all will happen in the &lt;tt&gt;onDrainComplete&lt;/tt&gt; phase, right? I believe creating a new coordinator doesn&apos;t take any locks, can you remind me how issuing a new &apos;coordinateCommit&apos; request against a primary will serialize with that recovery process so that in the end the transaction coordinator on the catalog reflects what&apos;s on disk, because I think in this case replication will accept &lt;tt&gt;PrimaryOnly&lt;/tt&gt; requests from what I remember? For the transaction participant, this is ensured by the checkoutSession mechanism.&lt;/p&gt;

&lt;p&gt;For 1.2 above - this will happen when the drain mode is completed, right? Remind me why do we need to join and not just leave it to the commit pipeline to run in the background.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="586547">SERVER-36585</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="627927">SERVER-37883</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 8 Nov 2018 03:24:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 9 weeks ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-834</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 9 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.saltz@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu6buv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu23pj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2539">Sharding 2018-10-22</customfieldvalue>
    <customfieldvalue id="2540">Sharding 2018-11-05</customfieldvalue>
    <customfieldvalue id="2581">Sharding 2018-11-19</customfieldvalue>
    <customfieldvalue id="2639">Sharding 2018-12-17</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu5y47:</customfieldvalue>

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