<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:31:35 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-32883] Enhanced FSM testing for reading from secondaries</title>
                <link>https://jira.mongodb.org/browse/SERVER-32883</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;1. Change the &lt;tt&gt;secondary_reads_passthrough.yml&lt;/tt&gt; test suite which was added as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34384&quot; title=&quot;Passthrough test for secondary reads during oplog application&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34384&quot;&gt;&lt;del&gt;SERVER-34384&lt;/del&gt;&lt;/a&gt; to use the &quot;forceSyncSourceCandidate&quot; failpoint as a server parameter to force secondary #2 to sync from secondary #1.&lt;/p&gt;

&lt;p&gt;2. Add a new version of the &lt;tt&gt;concurrency_replication.yml&lt;/tt&gt; test suite that uses a 5-node replica set with each secondary syncing in succession of each other (i.e. a linear chain), writeConcern={w: 1}, readConcern={level: &quot;local&quot;, afterClusterTime: ...}, and readPreference={mode: &quot;secondary&quot;}. We&apos;ll also likely want to make a wrapper around a &lt;tt&gt;Mongo&lt;/tt&gt; connection object to the primary and to a specific secondary so that an individual worker thread talks to a particular secondary all the time rather than some secondaries potentially never being read from.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I think there&apos;s some additional complexity here because we want FSM worker thread to do reads from different secondary. (We&apos;ll probably pin it to a particular secondary similar to how we &quot;round-robin&quot; when using multiple mongos processes.) It seems like we&apos;ll want to have a Mongo connection object implemented in JavaScript that for commands which are present in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6841ce738419923002958acc760e150769b6f615/jstests/libs/override_methods/set_read_preference_secondary.js#L10-L23&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this list&lt;/a&gt; are routed via a direct connection to the secondary and commands not present in that list are routed via a direct connection to the primary. I think the existing &quot;connection cache&quot; in the concurrency framework makes it relatively straightforward to have direct connections to other nodes in the cluster.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;In creating this wrapper around two separate &lt;tt&gt;Mongo&lt;/tt&gt; connection objects, we may also want to change how &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34383&quot; title=&quot;FSM test of secondary reads during oplog application&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34383&quot;&gt;&lt;del&gt;SERVER-34383&lt;/del&gt;&lt;/a&gt; was implemented to construct a wrapper around a secondary&apos;s connection from the connection cache instead of creating a replica set connection for the worker thread.&lt;/p&gt;

&lt;h6&gt;&lt;a name=&quot;Originaldescription&quot;&gt;&lt;/a&gt;Original description&lt;/h6&gt;

&lt;p&gt;As part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32606&quot; title=&quot;Tailing oplog on secondary fails with CappedPositionLost&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32606&quot;&gt;&lt;del&gt;SERVER-32606&lt;/del&gt;&lt;/a&gt; it turned out that our testing of tailing the oplog on secondaries, including the case of chained replication, is light, while the code paths for secondary reads have gotten quite different now from reads on primaries.&lt;/p&gt;

&lt;p&gt;We should have a passthrough test where we test these behaviors. This is related to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32606&quot; title=&quot;Tailing oplog on secondary fails with CappedPositionLost&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32606&quot;&gt;&lt;del&gt;SERVER-32606&lt;/del&gt;&lt;/a&gt;, but was too big a task to do as part of that ticket.&lt;/p&gt;</description>
                <environment></environment>
        <key id="486984">SERVER-32883</key>
            <summary>Enhanced FSM testing for reading from secondaries</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="xiangyu.yao@mongodb.com">Xiangyu Yao</assignee>
                                    <reporter username="geert.bosch@mongodb.com">Geert Bosch</reporter>
                        <labels>
                    </labels>
                <created>Wed, 24 Jan 2018 20:32:07 +0000</created>
                <updated>Mon, 30 Oct 2023 23:09:01 +0000</updated>
                            <resolved>Wed, 23 May 2018 22:14:33 +0000</resolved>
                                                    <fixVersion>4.0.0-rc1</fixVersion>
                    <fixVersion>4.1.1</fixVersion>
                                    <component>Replication</component>
                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="1901368" author="xgen-internal-githook" created="Thu, 24 May 2018 20:56:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;xy24&apos;, &apos;name&apos;: &apos;Xiangyu Yao&apos;, &apos;email&apos;: &apos;xiangyu.yao@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32883&quot; title=&quot;Enhanced FSM testing for reading from secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32883&quot;&gt;&lt;del&gt;SERVER-32883&lt;/del&gt;&lt;/a&gt; Add concurrency_replication_causal_consistency suite&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 73cf3829a07f09bf35e1563a8cd0c1bad74bc226)&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/a6bc80ed0712827f4793284c9d3a582260272e8b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a6bc80ed0712827f4793284c9d3a582260272e8b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1900201" author="xgen-internal-githook" created="Wed, 23 May 2018 22:13:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;xy24&apos;, &apos;name&apos;: &apos;Xiangyu Yao&apos;, &apos;email&apos;: &apos;xiangyu.yao@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32883&quot; title=&quot;Enhanced FSM testing for reading from secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32883&quot;&gt;&lt;del&gt;SERVER-32883&lt;/del&gt;&lt;/a&gt; Add concurrency_replication_causal_consistency suite&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/73cf3829a07f09bf35e1563a8cd0c1bad74bc226&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/73cf3829a07f09bf35e1563a8cd0c1bad74bc226&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1784014" author="spencer" created="Wed, 24 Jan 2018 21:05:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=geert.bosch&quot; class=&quot;user-hover&quot; rel=&quot;geert.bosch&quot;&gt;geert.bosch&lt;/a&gt;, why did the fix for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32606&quot; title=&quot;Tailing oplog on secondary fails with CappedPositionLost&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32606&quot;&gt;&lt;del&gt;SERVER-32606&lt;/del&gt;&lt;/a&gt; not include a regression test of the issue it addressed?  While I agree that better test coverage of oplog tailing in general is a noble goal, it is unlikely that we&apos;re going to have the time to do a comprehensive reconsideration of the test coverage here in the near future.  That shouldn&apos;t prevent us from increasing test coverage for specific edge cases as we uncover them.&lt;/p&gt;</comment>
                            <comment id="1783964" author="william.schultz" created="Wed, 24 Jan 2018 20:37:11 +0000"  >&lt;p&gt;I agree that a passthrough suite exercising various chaining configurations could be valuable. A 5-node replica set, for example, would have a number of different chaining topologies that would be good to test. It seems like an area where our test coverage may be lacking.&lt;/p&gt;</comment>
                            <comment id="1783963" author="max.hirschhorn@10gen.com" created="Wed, 24 Jan 2018 20:36:48 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=geert.bosch&quot; class=&quot;user-hover&quot; rel=&quot;geert.bosch&quot;&gt;geert.bosch&lt;/a&gt;, is this your idea of having a version of &lt;tt&gt;replica_sets_jscore_passthrough.yml&lt;/tt&gt; where we have 2 secondaries and force one of them to chain off of the other?&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="526732">SERVER-34465</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="519607">SERVER-34242</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="480717">SERVER-32606</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="545760">SERVER-35057</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="547189">SERVER-35130</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="547638">SERVER-35156</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="490380">SERVER-33042</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="524136">SERVER-34383</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="524137">SERVER-34384</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="548529">SERVER-35197</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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15640"><![CDATA[v4.0]]></customfieldvalue>
    <customfieldvalue key="15141"><![CDATA[v3.6]]></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>Wed, 24 Jan 2018 20:36:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 37 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/SERVER-34465'>SERVER-34465</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-988</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>
                            5 years, 37 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>geert.bosch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
            <customfieldvalue>william.schultz@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|htoovj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htk4yv:</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="2237">TIG 2018-05-07</customfieldvalue>
    <customfieldvalue id="2252">Storage NYC 2018-05-07</customfieldvalue>
    <customfieldvalue id="2320">Storage NYC 2018-05-21</customfieldvalue>
    <customfieldvalue id="2328">Storage NYC 2018-06-04</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</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|htoazz:</customfieldvalue>

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