<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:49:21 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-38576] Ban direct writes to transaction table in replset</title>
                <link>https://jira.mongodb.org/browse/SERVER-38576</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;We support the direct writes to transaction table, &lt;tt&gt;&quot;config.transactions&quot;&lt;/tt&gt;, to provide the maintenance ability to Support team. However, transactions use the transaction table for persistency as well. Changing its content arbitrarily may corrupt the data on the node and across the cluster. Thus we should ban direct writes to the transaction table in a replset. There&apos;s no restriction for writes to&#160;&lt;tt&gt;&quot;config.transactions&quot;&lt;/tt&gt; in standalone mode. Support team can still restart the node in standalone mode, fix its content and restart as a replica, whenever that&apos;s necessary.&lt;/p&gt;

&lt;p&gt;This work should also remove the session invalidation in OpObserver for direct writes on transaction table.&lt;/p&gt;</description>
                <environment></environment>
        <key id="651949">SERVER-38576</key>
            <summary>Ban direct writes to transaction table in replset</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="kaloian.manassiev@mongodb.com">Kaloian Manassiev</assignee>
                                    <reporter username="siyuan.zhou@mongodb.com">Siyuan Zhou</reporter>
                        <labels>
                            <label>prepare_errors</label>
                    </labels>
                <created>Wed, 12 Dec 2018 20:46:47 +0000</created>
                <updated>Thu, 4 Apr 2019 15:30:07 +0000</updated>
                            <resolved>Wed, 3 Apr 2019 22:43:46 +0000</resolved>
                                                                    <component>Replication</component>
                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="2202000" author="judah.schvimer" created="Thu, 4 Apr 2019 15:30:07 +0000"  >&lt;p&gt;That&apos;s reasonable to me.&lt;/p&gt;</comment>
                            <comment id="2201691" author="kaloian.manassiev" created="Thu, 4 Apr 2019 12:12:34 +0000"  >&lt;p&gt;That would be a problem, yes, but it is not different that customers being able to write to the &lt;tt&gt;config.chunks&lt;/tt&gt; collection for example. The only reason why we want to fix &lt;b&gt;this&lt;/b&gt; ticket is so the server doesn&apos;t crash when the fuzzer tests do it.&lt;/p&gt;

&lt;p&gt;Our stance on this has been that this not something that we support, but there is merit in allowing for emergency support situations. And because it requires administrative privileges, regular users are not able to do it.&lt;/p&gt;</comment>
                            <comment id="2201682" author="judah.schvimer" created="Thu, 4 Apr 2019 12:05:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36483&quot; title=&quot;Transaction reaper should not reap &amp;#39;config.transactions&amp;#39; entries for sessions with prepared transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36483&quot;&gt;&lt;del&gt;SERVER-36483&lt;/del&gt;&lt;/a&gt; only prevents writes for transactions with state &quot;prepared&quot;. If the state is &quot;committed&quot; or &quot;aborted&quot; but formerly was &quot;prepared&quot;, is it a problem that a user could effectively change the decision of the transaction for that shard?&lt;/p&gt;</comment>
                            <comment id="2201348" author="kaloian.manassiev" created="Wed, 3 Apr 2019 22:43:46 +0000"  >&lt;p&gt;The fundamental reason to disable direct writes to the transactions collection is because it may make the on disk state out of sync with the in-memory cache. However, through &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36483&quot; title=&quot;Transaction reaper should not reap &amp;#39;config.transactions&amp;#39; entries for sessions with prepared transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36483&quot;&gt;&lt;del&gt;SERVER-36483&lt;/del&gt;&lt;/a&gt; we will solve that problem, so I am closing this ticket as duplicate.&lt;/p&gt;</comment>
                            <comment id="2116522" author="siyuan.zhou@10gen.com" created="Wed, 16 Jan 2019 01:03:08 +0000"  >&lt;p&gt;Session reaper is internal and has a simpler concurrency requirement. For example, it will not run on a prepared transaction. We are able to distinguish internal operation and user operation. Does it make sense to only ban user direct writes to the transaction table? CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2115392" author="kaloian.manassiev" created="Tue, 15 Jan 2019 13:40:50 +0000"  >&lt;p&gt;I don&apos;t think we can actually ban direct writes to the transactions collection, because this is what the sessions reaper does when expiring sessions. Because of this I am going to repurpose this ticket to mean &quot;fix the concurrency control around direct writes to the transactions collection&quot;.&lt;/p&gt;</comment>
                            <comment id="2088954" author="siyuan.zhou@10gen.com" created="Wed, 12 Dec 2018 20:56:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alyson.cabral&quot; class=&quot;user-hover&quot; rel=&quot;alyson.cabral&quot;&gt;alyson.cabral&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas@mongodb.com&quot;&gt;bruce.lucas@mongodb.com&lt;/a&gt;, this ticket is from a meeting with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt; to simplify the state management in transaction participant. We are not aware of any real case where this support feature is used. Does this proposed change make sense to you?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt;, assigning to Sharding team, since it&apos;s about retryable writes, but Replicaiton team is also equipped to handle this if the OpObserver is the only thing that needs to be removed.&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="584973">SERVER-36483</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="607766">SERVER-37235</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 12 Dec 2018 21:00:32 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 44 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/WRITING-3447'>WRITING-3447</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-1032</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>judah.schvimer@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years, 44 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hufxwv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu617z:</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="2640">Sharding 2018-12-31</customfieldvalue>
    <customfieldvalue id="2725">Sharding 2019-01-14</customfieldvalue>
    <customfieldvalue id="2726">Sharding 2019-01-28</customfieldvalue>
    <customfieldvalue id="2786">Sharding 2019-02-11</customfieldvalue>
    <customfieldvalue id="2787">Sharding 2019-02-25</customfieldvalue>
    <customfieldvalue id="2824">Sharding 2019-03-11</customfieldvalue>
    <customfieldvalue id="2825">Sharding 2019-03-25</customfieldvalue>
    <customfieldvalue id="2863">Sharding 2019-04-08</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|hufk67:</customfieldvalue>

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