<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:23:06 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-50610] secondary_reads.js should not make assertions based on natural collection ordering</title>
                <link>https://jira.mongodb.org/browse/SERVER-50610</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6cae36cca963dbe148a33fe524250ebb9c8e8d62/jstests/concurrency/fsm_workloads/secondary_reads.js#L71&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;secondary_reads.js&lt;/a&gt; FSM test is an insert-only workload that reads from secondaries. It makes assertions that the documents read from the secondary do not contain &apos;holes&apos;, or discontinuities in the documents. The documents are are inserted in increasing order and incremented by values of 1. The expectation is that a collection scan + sort of the documents reveals no gaps in the data. The problem is that this is not guaranteed by non-snapshot reads.&lt;/p&gt;

&lt;p&gt;When the test uses a readConcern: majority cursor, specifically, the read may use a timestamp T that occurs in the middle of a past-completed oplog batch. This is problematic because documents are not inserted in order on the secondary, and majority reads effectively have read-committed isolation (as do all non-snapshot reads). The cursor may periodically yield and update to read at a newer timestamp, T + N. This introduces the possibility of cursors missing documents that were committed after the initial read timestamp T, and before T + N. As a result, some documents visible at T are returned, and some documents visible at T + N are returned.&#160;&lt;/p&gt;

&lt;p&gt;Here is an example:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;10 documents are inserted on a primary with _id 1 through 10 and corresponding timestamps 1-10.&lt;/li&gt;
	&lt;li&gt;When applied on the secondary, these inserts are split up into 2 groups, odds and evens, across 2 threads.&lt;/li&gt;
	&lt;li&gt;After the batch completes, due to the way the inserts interleaved, the collection looks like this:
	&lt;ul&gt;
		&lt;li&gt;&#160;RID 1: _id: 2&lt;/li&gt;
		&lt;li&gt;&#160;RID 2: _id: 4&lt;/li&gt;
		&lt;li&gt;&#160;RID 3: _id: 6&lt;/li&gt;
		&lt;li&gt;&#160;RID 4: _id: 8&lt;/li&gt;
		&lt;li&gt;&#160;RID 5: _id: 10&lt;/li&gt;
		&lt;li&gt;&#160;RID 6: _id: 1&lt;/li&gt;
		&lt;li&gt;&#160;RID 7: _id: 3&lt;/li&gt;
		&lt;li&gt;&#160;RID 8: _id: 5&lt;/li&gt;
		&lt;li&gt;&#160;RID 9: _id: 7&lt;/li&gt;
		&lt;li&gt;&#160;RID 10: _id: 9&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;A reader starts a collection scan at Timestamp 5. They see documents with _id 2, 4, 1, 3, then yield routinely. When they recover from the yield, they start reading at Timestamp 10, but pick up reading at RID 8. They then see documents with _id 5, 7, 9, and hit the end of the collection and return.&lt;/li&gt;
	&lt;li&gt;In this example, the query fails to return documents with _id 6, 8, and 10.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In general, this is a problem for the readConcern &apos;local&apos; and &apos;available&apos; parts of the test, but because these always occur on batch boundaries (lastApplied), which advances slower than the majority commit point, they seem to be much more unlikely to observe the same problem.&lt;/p&gt;

&lt;p&gt;The test should not be making assertions about the entire collection&apos;s data, since that requires snapshot read isolation. Instead, we should modify the test to have weaker assertions.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1455876">SERVER-50610</key>
            <summary>secondary_reads.js should not make assertions based on natural collection ordering</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="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 Aug 2020 16:42:41 +0000</created>
                <updated>Sun, 29 Oct 2023 22:03:52 +0000</updated>
                            <resolved>Fri, 11 Sep 2020 21:58:01 +0000</resolved>
                                                    <fixVersion>4.8.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="3390029" author="xgen-internal-githook" created="Fri, 11 Sep 2020 21:42:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50610&quot; title=&quot;secondary_reads.js should not make assertions based on natural collection ordering&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50610&quot;&gt;&lt;del&gt;SERVER-50610&lt;/del&gt;&lt;/a&gt; secondary_reads.js should not make assertions based on natural collection ordering&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7491889863ca960b6fa40a4aea99a049e96bfc85&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7491889863ca960b6fa40a4aea99a049e96bfc85&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3364848" author="louis.williams" created="Fri, 28 Aug 2020 19:37:57 +0000"  >&lt;p&gt;After some discussion with &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;, I think we can fix the test by forcing the query to use the {x: 1 } index by &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6cae36cca963dbe148a33fe524250ebb9c8e8d62/jstests/concurrency/fsm_workloads/secondary_reads.js#L110&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;building it on the correct collection&lt;/a&gt; (it needs to be built on &apos;this.collName&apos;).&lt;/p&gt;

&lt;p&gt;This test can make the same assertion if it scans using an index that is ordered (either _id or x). The main problem is that this workload&apos;s assertions depend on &quot;natural&quot; ordering that is not guaranteed on secondaries. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <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>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1576328">SERVER-53481</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>2.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_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>Fri, 28 Aug 2020 17:02:53 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 21 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_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, 21 weeks, 5 days 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_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>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hy2qdj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxpafr:</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="4213">Execution Team 2020-09-21</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|hy2cmv:</customfieldvalue>

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