<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:15:52 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-48010] Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write</title>
                <link>https://jira.mongodb.org/browse/SERVER-48010</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41766&quot; title=&quot;Secondary may encounter prepare conflict when applying write that sets the multikey flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41766&quot;&gt;&lt;del&gt;SERVER-41766&lt;/del&gt;&lt;/a&gt; changed the catalog multikey update for multi-statement transactions on primaries to happen in a side transaction. This side transaction looks at the logical clock to find a timestamp far enough in the future to use for writing to the catalog.&lt;/p&gt;

&lt;p&gt;Because (I believe) we only perform this ghost timestamp on primaries, it&apos;s preferable to instead write a no-op oplog entry. That way the stable timestamp never races with the transaction being committed. Durable history may have different consequences due to these races.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1343348">SERVER-48010</key>
            <summary>Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 May 2020 15:43:57 +0000</created>
                <updated>Sun, 29 Oct 2023 22:08:34 +0000</updated>
                            <resolved>Tue, 12 May 2020 12:34:58 +0000</resolved>
                                                    <fixVersion>4.4.0-rc7</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="3093634" author="xgen-internal-githook" created="Mon, 18 May 2020 19:28:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;email&apos;: &apos;judah@mongodb.com&apos;, &apos;username&apos;: &apos;judahschvimer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48010&quot; title=&quot;Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48010&quot;&gt;&lt;del&gt;SERVER-48010&lt;/del&gt;&lt;/a&gt; Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1417eee440b4132e24d1388011d681e2c9fcec41)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e7febe077be215d6af6a84232c7070b6905523d7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e7febe077be215d6af6a84232c7070b6905523d7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3080413" author="xgen-internal-githook" created="Tue, 12 May 2020 12:18:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;email&apos;: &apos;judah@mongodb.com&apos;, &apos;username&apos;: &apos;judahschvimer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48010&quot; title=&quot;Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48010&quot;&gt;&lt;del&gt;SERVER-48010&lt;/del&gt;&lt;/a&gt; Substitute ghost timestamp with no-op write in multi-statement txn multikey sidetxn write&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1417eee440b4132e24d1388011d681e2c9fcec41&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1417eee440b4132e24d1388011d681e2c9fcec41&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3074784" author="judah.schvimer" created="Thu, 7 May 2020 21:13:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt; pointed me to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fce6f5117387245a157d9ddf0bdb4505763c313f/src/mongo/db/catalog/index_catalog_entry_impl.cpp#L284-L294&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this area of code&lt;/a&gt; as the problematic section.&lt;/p&gt;</comment>
                            <comment id="3074755" author="daniel.gottlieb@10gen.com" created="Thu, 7 May 2020 20:59:14 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;, a reliable reproducer for the linked test failure (assuming this even is what caused the test failure) is difficult because the conditions for a failure:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;requires cache overflow to be engaged&lt;/li&gt;
	&lt;li&gt;requires a ghost timestamp write (which only happens on the catalog AFAIK)&lt;/li&gt;
	&lt;li&gt;requires startup/rollback recovery to spot an inconsistency where a deleted catalog document comes back&lt;/li&gt;
	&lt;li&gt;requires replication (recovery/steady state) to spot an inconsistency post-crash where a catalog document incorrectly was deleted by trying to write to the lost collection&lt;/li&gt;
	&lt;li&gt;crashing a node can only be hammered so quickly&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;ve filed &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48024&quot; title=&quot;Have validate compare collection object with on-disk metadata object&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48024&quot;&gt;&lt;del&gt;SERVER-48024&lt;/del&gt;&lt;/a&gt; which I think addresses a lot of those points. I&apos;m not positive it&apos;s a perfect substitute in a fuzzy checkpoint world, but it should be a simple addition and can only help.&lt;/p&gt;</comment>
                            <comment id="3074599" author="daniel.gottlieb@10gen.com" created="Thu, 7 May 2020 19:35:47 +0000"  >&lt;p&gt;I linked a BF that I believe is due to this, though I haven&apos;t added to the comments yet. Like most cache overflow bugs, there&apos;s no great advice for reproducing. We do have other BFs with similar writes (i.e: capped collections deleting in a non-timestamped side-transaction) causing data inconsistency (deleted records coming back to life). WT is aware of these timestamp orderings being problematic (our usage breaks some of their assumptions) and should have them all fixed for the release. However, I believe it&apos;s preferable to depend on the WT contract (and not the pre-durable history implementation), particularly for code changes that are anticipated to be simple.&lt;/p&gt;</comment>
                            <comment id="3074578" author="tess.avitabile" created="Thu, 7 May 2020 19:21:57 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;, can you give us any advice on how to reproduce this?&lt;/p&gt;</comment>
                            <comment id="3074560" author="daniel.gottlieb@10gen.com" created="Thu, 7 May 2020 19:11:32 +0000"  >&lt;p&gt;For 4.2, I would classify this as an improvement, for 4.4 I would classify this as a bug. The impact of this in master is data loss. Obviously there&apos;s an effort for that not to be the case, but the usage (particularly in this primary only case) adds a lot more complexity for WT than the simplicity of doing a ghost timestamp vs no-op oplog entry saves us.&lt;/p&gt;</comment>
                            <comment id="3074409" author="judah.schvimer" created="Thu, 7 May 2020 17:59:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;, is this a bug or an improvement? If it&apos;s a bug, what&apos;s the impact of this?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1365487">SERVER-48465</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="859350">SERVER-42251</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1157530">SERVER-46229</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1423083">SERVER-49949</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1335052">SERVER-47867</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1343762">SERVER-48024</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>8.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></customfieldvalue>
    <customfieldvalue key="16775"><![CDATA[v4.2]]></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, 7 May 2020 17:59:12 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 38 weeks, 2 days 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>
                            3 years, 38 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>50.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxk4bj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hx7f6v:</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="3882">Repl 2020-05-18</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|hxjqkv:</customfieldvalue>

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