<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:10:07 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-45945] Prohibit collection/index creation inside prepared transactions</title>
                <link>https://jira.mongodb.org/browse/SERVER-45945</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This ticket is split from &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45368&quot; title=&quot;Allow collection and index creation inside sharded_jscore_txns and sharded_causally_consistent_jscore_txns_passthrough suites&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45368&quot;&gt;&lt;del&gt;SERVER-45368&lt;/del&gt;&lt;/a&gt;, which allows collection and index creation inside unprepared transactions in a sharded cluster.&lt;/p&gt;

&lt;p&gt;The work to make collection and index creation function inside prepared transactions is nontrivial, and there are crash scenarios that can happen presently (see my comment). This ticket will fix those crash scenarios by disallowing collection and index creation (and any other commands) from prepared transactions.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1128712">SERVER-45945</key>
            <summary>Prohibit collection/index creation inside prepared transactions</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="maria.vankeulen@mongodb.com">Maria van Keulen</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Feb 2020 16:29:52 +0000</created>
                <updated>Fri, 14 Feb 2020 21:57:04 +0000</updated>
                            <resolved>Fri, 14 Feb 2020 21:57:04 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2879576" author="maria.vankeulen" created="Fri, 14 Feb 2020 21:57:04 +0000"  >&lt;p&gt;I&apos;ll be fixing this as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45405&quot; title=&quot;Allow implicit collection creation inside multi-document transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45405&quot;&gt;&lt;del&gt;SERVER-45405&lt;/del&gt;&lt;/a&gt;, since the present issues with prepare get exposed in the testing for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45405&quot; title=&quot;Allow implicit collection creation inside multi-document transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45405&quot;&gt;&lt;del&gt;SERVER-45405&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2843467" author="maria.vankeulen" created="Fri, 7 Feb 2020 22:44:06 +0000"  >&lt;p&gt;It looks like there is a wrinkle for prepared transactions. In order to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/transaction_oplog_application.cpp#L407&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;set&lt;/a&gt; a prepare timestamp for the transaction on the secondary, we need to have &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/transaction_oplog_application.cpp#L399&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;applied&lt;/a&gt; all of the operations inside of the transactions. In order to apply a command, we need to call applyCommand_inlock during &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/transaction_oplog_application.cpp#L69&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_applyOperationsForTransaction&lt;/a&gt;. During applyCommand_inlock, we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/oplog.cpp#L1399&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;assign&lt;/a&gt; a command timestamp to the command in most cases. We then create a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/oplog.cpp#L1430&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;TimestampBlock&lt;/a&gt;, which in turn calls setCommitTimestamp, which &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp#L638&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;invariants&lt;/a&gt; that we are either outside a WUOW (not true, since we&apos;ve &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90/src/mongo/db/repl/transaction_oplog_application.cpp#L391&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;unstashed&lt;/a&gt; our transaction resources) or we have set a prepare timestamp (not true, since we need to have applied all of our operations to set it).&lt;br/&gt;
I will update the title and description of the ticket to ensure that collection and index creation cannot occur inside prepared transactions, given this wrinkle.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="1079794">SERVER-45405</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1144951">SERVER-46105</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1076550">SERVER-45368</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>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 51 weeks, 5 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/TIG-2363'>TIG-2363</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-1168</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>maria.vankeulen@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 51 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwnhgf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hw0jyn:</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="3519">Execution Team 2020-02-10</customfieldvalue>
    <customfieldvalue id="3630">Execution Team 2020-02-24</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|hwn3pr:</customfieldvalue>

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