<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:17:07 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-70784] Create TTL index for config.sampledQueries and config.sampledQueriesDiff on stepup</title>
                <link>https://jira.mongodb.org/browse/SERVER-70784</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;ul&gt;
	&lt;li&gt;Add mongod server parameter &quot;sampledQueriesExpirationSeconds&quot; (defaults to 7 days).&lt;/li&gt;
	&lt;li&gt;Make config.sampledQueries and config.sampledQueriesDiff documents have an &quot;expireAt&quot; field set to &quot;sampledQueriesExpirationSeconds&quot; after the insert time.&lt;/li&gt;
	&lt;li&gt;Create a &lt;span class=&quot;error&quot;&gt;&amp;#91;\{key: \{expireAt: 1\},&#160; \{expireAfterSeconds: 0\}&amp;#93;&lt;/span&gt; index for these collections upon stepup or setFCV upgrade if it doesn&apos;t already exist.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="2164778">SERVER-70784</key>
            <summary>Create TTL index for config.sampledQueries and config.sampledQueriesDiff on stepup</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="israel.hsu@mongodb.com">Israel Hsu</assignee>
                                    <reporter username="cheahuychou.mao@mongodb.com">Cheahuychou Mao</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Oct 2022 06:43:29 +0000</created>
                <updated>Sun, 29 Oct 2023 21:31:35 +0000</updated>
                            <resolved>Wed, 25 Jan 2023 22:31:37 +0000</resolved>
                                                    <fixVersion>6.3.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="5140977" author="xgen-internal-githook" created="Wed, 25 Jan 2023 20:06:55 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Israel Hsu&apos;, &apos;email&apos;: &apos;israel.hsu@mongodb.com&apos;, &apos;username&apos;: &apos;israelhsu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-70784&quot; title=&quot;Create TTL index for config.sampledQueries and config.sampledQueriesDiff on stepup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-70784&quot;&gt;&lt;del&gt;SERVER-70784&lt;/del&gt;&lt;/a&gt; Create TTL index for config.sampledQueries and config.sampledQueriesDiff&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ec6297a9b6460c60a416e1daa4bddeb217514868&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ec6297a9b6460c60a416e1daa4bddeb217514868&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5121494" author="JIRAUSER1262333" created="Wed, 18 Jan 2023 17:48:37 +0000"  >&lt;p&gt;Instead of a javascript test, I implemented unit tests that uses the failCommand failpoint to cause createIndexes to return certain errors such as IndexAlreadyExists and PrimarySteppedDown.&lt;/p&gt;</comment>
                            <comment id="5110420" author="JIRAUSER1262333" created="Thu, 12 Jan 2023 22:22:18 +0000"  >&lt;p&gt;Our case is simpler than what Pierlauro mentioned. I implemented the following: The thread for creating the TTL indexes can retry until success (either the indexes are created or they already exist), or a NotPrimaryError is caught. If the indexes have not been created, the new primary will attempt to create them onStepUpComplete.&lt;/p&gt;

&lt;p&gt;I&apos;m working on a javascript test that might test this. There is a test in `internal_transactions_reap_service_test.js` called DoesNotReapAsSecondaryAndClearsSessionOnStepdown that manipulates the state of the replica in order to test associated behaviors.&lt;/p&gt;</comment>
                            <comment id="5107458" author="JIRAUSER1262333" created="Wed, 11 Jan 2023 22:23:06 +0000"  >&lt;p&gt;Chou rightly mentions that the TTL index creation that gets asynchronously started onStepUpComplete() might take time, during which the server could step down again. The index-creation thread should be stopped or canceled if this happens &#8211; that is, not allowed to retry forever. Pierlauro mentioned that this pattern of execution (starting a thread on step-up and stopping it on step-down) is common and provided some hints to implement this. His comment is copied to the &lt;a href=&quot;#r1067191880].&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;comment in the PR&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&apos;m working on implementing this for QueryAnalysisWriter.&lt;/p&gt;</comment>
                            <comment id="5071141" author="JIRAUSER1262333" created="Wed, 21 Dec 2022 19:46:48 +0000"  >&lt;p&gt;@Jack Mulrow advised to check with the replication team about making local writes (in our case, creating the TTL index) in the onStepUpComplete hook. In ReplicationCoordinatorImpl::signalDrainComplete(), &lt;a href=&quot;https://github.com/10gen/mongo/blob/86a4f25c9a0a5c20e648b5501bdfa615bc2be47b/src/mongo/db/repl/replication_coordinator_impl.cpp#L1343&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;onStepUpComplete &lt;/a&gt;is invoked before &lt;a href=&quot;https://github.com/10gen/mongo/blob/86a4f25c9a0a5c20e648b5501bdfa615bc2be47b/src/mongo/db/repl/replication_coordinator_impl.cpp#L1358&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_canAcceptNonLocalWrites&lt;/a&gt; is set, so index creation may fail. Possible solutions include using an executor to create the indexes a little bit later and/or retry on failure; or using a lower-level API than DBClient to avoid the _canAcceptNonLocalWrites check.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </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>6.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>Wed, 21 Dec 2022 19:46:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 2 weeks 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1858</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>
                            1 year, 2 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>22.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>cheahuychou.mao@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>israel.hsu@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1f1in:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0xp4w:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="6353">Sharding NYC 2022-11-28</customfieldvalue>
    <customfieldvalue id="6354">Sharding 2022-12-12</customfieldvalue>
    <customfieldvalue id="6355">Sharding NYC 2022-12-26</customfieldvalue>
    <customfieldvalue id="6356">Sharding NYC 2023-01-09</customfieldvalue>
    <customfieldvalue id="6865">Sharding NYC 2023-01-23</customfieldvalue>
    <customfieldvalue id="6866">Sharding NYC 2023-02-06</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|i1ennz:</customfieldvalue>

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