<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:00:39 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-42497] Detect/log unintentional untimestamped writes to catalog table</title>
                <link>https://jira.mongodb.org/browse/SERVER-42497</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42185&quot; title=&quot;cleanUpAfterBuild can be called after the node steps down to secondary&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42185&quot;&gt;&lt;del&gt;SERVER-42185&lt;/del&gt;&lt;/a&gt; is a fix for such an untimestamped write in a certain path. However, to prevent such mistakes in the future, we need a way to detect these unintentional untimestamped writes, so that the bug shows up sooner than caught by other checks such as  dbhash mismatch which requires a chain of reaction after the untimestamped writes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="879898">SERVER-42497</key>
            <summary>Detect/log unintentional untimestamped writes to catalog table</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="daniel.gottlieb@mongodb.com">Daniel Gottlieb</assignee>
                                    <reporter username="xiangyu.yao@mongodb.com">Xiangyu Yao</reporter>
                        <labels>
                    </labels>
                <created>Tue, 30 Jul 2019 15:22:13 +0000</created>
                <updated>Sun, 29 Oct 2023 22:18:36 +0000</updated>
                            <resolved>Wed, 21 Aug 2019 16:04:32 +0000</resolved>
                                                    <fixVersion>4.3.1</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="2381133" author="xgen-internal-githook" created="Wed, 21 Aug 2019 15:59:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;dgottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;name&apos;: &apos;Daniel Gottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42497&quot; title=&quot;Detect/log unintentional untimestamped writes to catalog table&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42497&quot;&gt;&lt;del&gt;SERVER-42497&lt;/del&gt;&lt;/a&gt;: Detect unintentional untimestamped writes to the durable catalog.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d63202a259f038a8a8ef1af6f67c8cec396de4e5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d63202a259f038a8a8ef1af6f67c8cec396de4e5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2380247" author="alexander.gorrod" created="Wed, 21 Aug 2019 06:03:38 +0000"  >&lt;p&gt;Woo! Thanks for finding a path forward on this Dan - I&apos;m excited that there is more checking around expected use now.&lt;/p&gt;</comment>
                            <comment id="2379424" author="daniel.gottlieb@10gen.com" created="Tue, 20 Aug 2019 18:11:12 +0000"  >&lt;p&gt;Unfortunately &lt;tt&gt;assert=(commit_timestamp=always)&lt;/tt&gt; is not sufficient for the table in question &lt;tt&gt;_mdb_catalog&lt;/tt&gt;:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Some documents in that table are never timestamped, e.g: DDL operations on collections that are not replicated.&lt;/li&gt;
	&lt;li&gt;Initial syncing will (legally) perform DDL operations without timestamps. I believe successfully altering a table to change it&apos;s assertion logic required all WT cursors to be closed (or at least unpositioned).&lt;/li&gt;
	&lt;li&gt;While it hasn&apos;t happened since early integration of timestamping DDL operations, there was a codepath where a timestamp was used for an update which was (illegally) smaller than the timestamp on the previous update.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;If we actually do the required server work to make &lt;tt&gt;key_consistent&lt;/tt&gt; viable and there is a notable performance hit, it still might be preferable turning it on in (some/all) testing.&lt;/p&gt;</comment>
                            <comment id="2377921" author="sue.loverso" created="Mon, 19 Aug 2019 20:39:42 +0000"  >&lt;p&gt;The checks for &lt;tt&gt;key_consistent&lt;/tt&gt; are a lot more involved and will likely have a performance impact. The code for &lt;tt&gt;always&lt;/tt&gt; or &lt;tt&gt;never&lt;/tt&gt; is code we&apos;re already executing every time we commit (checking if a bit is set). &lt;/p&gt;</comment>
                            <comment id="2377856" author="daniel.gottlieb@10gen.com" created="Mon, 19 Aug 2019 20:11:22 +0000"  >&lt;p&gt;Using &lt;tt&gt;assert=(commit_timestamp=key_consistent)&lt;/tt&gt; is still the long-term goal, but that depends on PM-253 being completed.&lt;/p&gt;</comment>
                            <comment id="2377834" author="sue.loverso" created="Mon, 19 Aug 2019 20:01:00 +0000"  >&lt;p&gt;I&apos;m late to this party, but would setting the &lt;tt&gt;assert=(commit_timestamp=always)&lt;/tt&gt; on this table find this for you? (Or &lt;tt&gt;durable_timestamp=always&lt;/tt&gt; if that is a better option.) Setting that should not really have any impact on performance.&lt;/p&gt;</comment>
                            <comment id="2358167" author="milkie" created="Mon, 5 Aug 2019 17:52:45 +0000"  >&lt;p&gt;I believe we might only do untimestamped writes to the catalog at startup, so perhaps there&apos;s a way to disallow them at other times without a performance hit.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="888086">SERVER-42718</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="897444">SERVER-42834</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="897208">SERVER-42830</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="905164">SERVER-43018</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="987315">SERVER-44359</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>7.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <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>Mon, 5 Aug 2019 17:52:45 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 25 weeks 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-42718'>SERVER-42718</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-42830'>SERVER-42830</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-42834'>SERVER-42834</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_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>
                            4 years, 25 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>12.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>sue.loverso@mongodb.com</customfieldvalue>
            <customfieldvalue>xiangyu.yao@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvi8t3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hv7pvb:</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="3091">Execution Team 2019-08-12</customfieldvalue>
    <customfieldvalue id="3092">Execution Team 2019-08-26</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|hvhv2f:</customfieldvalue>

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