<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:44:49 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-37045] Consider not allowing killCursors to start a cross-shard transaction</title>
                <link>https://jira.mongodb.org/browse/SERVER-37045</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, &lt;tt&gt;killCursors&lt;/tt&gt; is &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#what-commands-can-be-run-in-a-transaction&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;one of the commands allowed to start a transaction&lt;/a&gt;. All requests sent to a shard as part of these commands forward the transaction options of the cross-shard transaction and start single replica set transactions (cluster &lt;tt&gt;killCursors&lt;/tt&gt; can do so if it kills a pinned cluster cursor). Shards aren&apos;t allowed to change the read concern of their local transaction once it has been started, so the first request to each shard must include the read concern that will be used for the remainder of the cross-shard transaction, including the &lt;tt&gt;atClusterTime&lt;/tt&gt;&#160;read concern option. Unfortunately, this means &lt;tt&gt;killCursors&lt;/tt&gt; must select and pin a global read timestamp for the entire cross-shard transaction, even though it has no real meaning when killing a cursor and the command cannot easily leverage the targeted shards to pick a good timestamp (that avoids no-op writes or reduces the chance write conflicts).&lt;/p&gt;

&lt;p&gt;This ticket is to consider preventing&#160;&lt;tt&gt;killCursors&lt;/tt&gt;&#160;from starting a cross-shard transaction, to avoid the issues above. It would still be allowed as a subsequent statement, so users can kill any cursors established in their current transaction, but they would not be able to start a new transaction that kills an already existing cursor.&lt;/p&gt;

&lt;p&gt;As part of this ticket, the ability to select a global read timestamp should be removed from cluster &lt;tt&gt;killCursors&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="601154">SERVER-37045</key>
            <summary>Consider not allowing killCursors to start a cross-shard transaction</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="3">Duplicate</resolution>
                                        <assignee username="jack.mulrow@mongodb.com">Jack Mulrow</assignee>
                                    <reporter username="jack.mulrow@mongodb.com">Jack Mulrow</reporter>
                        <labels>
                            <label>ShardedTxn:GlobalSnapshot</label>
                            <label>todo_in_code</label>
                    </labels>
                <created>Fri, 7 Sep 2018 14:00:41 +0000</created>
                <updated>Thu, 9 Apr 2020 16:44:30 +0000</updated>
                            <resolved>Mon, 19 Nov 2018 23:25:41 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3033627" author="xgen-internal-githook" created="Thu, 9 Apr 2020 16:44:30 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jack Mulrow&apos;, &apos;email&apos;: &apos;jack.mulrow@mongodb.com&apos;, &apos;username&apos;: &apos;jsmulrow&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-43425&quot; title=&quot;Remove TODO listed in SERVER-37045&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-43425&quot;&gt;&lt;del&gt;SERVER-43425&lt;/del&gt;&lt;/a&gt; Remove TODO listed in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37045&quot; title=&quot;Consider not allowing killCursors to start a cross-shard transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37045&quot;&gt;&lt;del&gt;SERVER-37045&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/177d55adfd397de4b78f35a2da0bdd9160c623c7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/177d55adfd397de4b78f35a2da0bdd9160c623c7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2067241" author="jack.mulrow" created="Mon, 19 Nov 2018 23:25:14 +0000"  >&lt;p&gt;Disallowing &lt;tt&gt;killCursors&lt;/tt&gt; as the first command in a transaction was done in&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36587&quot; title=&quot;Committing a transaction which was started with a killCursors command can fail&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36587&quot;&gt;&lt;del&gt;SERVER-36587&lt;/del&gt;&lt;/a&gt; and removing the global read timestamp logic from &lt;tt&gt;killCursors&lt;/tt&gt; was done in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37349&quot; title=&quot;Subsequent statements in a transaction should target shards using the global read timestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37349&quot;&gt;&lt;del&gt;SERVER-37349&lt;/del&gt;&lt;/a&gt;,&#160;so closing this ticket as a duplicate.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="586583">SERVER-36587</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="610866">SERVER-37349</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="935530">SERVER-43425</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 9 Apr 2020 16:44:30 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 43 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-36587'>SERVER-36587</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-37349'>SERVER-37349</a></s>]]></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>xgen-internal-githook</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 43 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jack.mulrow@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu7ezz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htxwi7:</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="2611">Sharding 2018-12-03</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|hu719b:</customfieldvalue>

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