<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:26:48 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-74205] Fix wall time correctness bug in CollectionTruncateMarkers</title>
                <link>https://jira.mongodb.org/browse/SERVER-74205</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;With the creation of CollectionTruncateMarkers we discovered that there is a correctness bug in the previous OplogStones class with regards to the retention time.&lt;/p&gt;

&lt;p&gt;In a given marker right now the wallTime and record id assigned are the ones of the latest record inserted. This presumes that the following constraints hold given records A and B with ids idA, idB, and wall times wallA, wallB:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;idA &amp;lt; idB&lt;/li&gt;
	&lt;li&gt;wallA &amp;lt;= wallB&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There might be the case though that the following case occurs sometimes in entries:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;idA &amp;lt; idB&lt;/li&gt;
	&lt;li&gt;wallA &amp;gt;= wallB&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In this case, time-based expiration systems would eagerly delete something before it&apos;s supposed expiration time. To fix this we should ideally replace the simple marker creation with something that keeps track of the highest wallTime seen between markers. This would help prevent the correctness issue for time-based expiration systems by guaranteeing that all items present in a marker are older than the given wall time.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2270449">SERVER-74205</key>
            <summary>Fix wall time correctness bug in CollectionTruncateMarkers</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="13202">Works as Designed</resolution>
                                        <assignee username="jordi.olivares-provencio@mongodb.com">Jordi Olivares Provencio</assignee>
                                    <reporter username="jordi.olivares-provencio@mongodb.com">Jordi Olivares Provencio</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 Feb 2023 13:26:51 +0000</created>
                <updated>Fri, 27 Oct 2023 13:51:42 +0000</updated>
                            <resolved>Fri, 10 Mar 2023 15:50:53 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="5264187" author="JIRAUSER1264163" created="Fri, 10 Mar 2023 15:50:42 +0000"  >&lt;p&gt;Right now this not a concern due to the only truncate markers users being:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Oplog truncation&lt;/li&gt;
	&lt;li&gt;Change collection truncation&lt;/li&gt;
	&lt;li&gt;Pre-image truncation&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This case described here can happen either due to the clock changing in the middle of a truncate marker, or due to concurrent writes not being ordered.&lt;/p&gt;

&lt;p&gt;For the first case, only Pre-image and Oplog truncation are susceptible due to operator misconfiguration of the system clock on premises. In this case however the oplog truncating due to growing past the maximum size would cause pre-images to expire also. This means the failure would be resolved eventually by the oplog rolling over. In the case minimum retention time is configured for the oplog then the oplog is already susceptible to this issue so the failure is already one that&apos;s known and hasn&apos;t caused any issues.&lt;/p&gt;

&lt;p&gt;For the latter case, the difference in wall time between entries is minuscule to the point that it probably won&apos;t even manifest since the resolution is in the milliseconds. Truncation also happens at the second resolution in pre-image/change collection maintenance, so it is quite improbable to hit this scenario in any meaningful way.&lt;/p&gt;

&lt;p&gt;As such, we&apos;re closing this ticket as Works as designed since the modes of failure are either too remote to be a valid concern or don&apos;t lead to a permanent failure (first scenario on premises).&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.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>
                                        47 weeks, 5 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-3092</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>
                            47 weeks, 5 days ago
                        </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>jordi.olivares-provencio@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1x0on:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1ffww:</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="6773">Execution Team 2023-03-06</customfieldvalue>
    <customfieldvalue id="6816">Execution Team 2023-03-20</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|i1wmtz:</customfieldvalue>

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