<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:14:52 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-69948] Prevent entries with outdated txnNum entries from creating config.image_collection documents</title>
                <link>https://jira.mongodb.org/browse/SERVER-69948</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;del&gt;we can re-enable hash checking for this collection after &lt;a href=&quot;https://jira.mongodb.org/browse/PM-298&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;PM-2981&lt;/a&gt;&lt;/del&gt;&#160;TBD based on how we decide to resolve the issue&lt;/p&gt;</description>
                <environment></environment>
        <key id="2144296">SERVER-69948</key>
            <summary>Prevent entries with outdated txnNum entries from creating config.image_collection documents</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="christopher.caplinger@mongodb.com">Christopher Caplinger</assignee>
                                    <reporter username="christopher.caplinger@mongodb.com">Christopher Caplinger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 23 Sep 2022 16:22:49 +0000</created>
                <updated>Sun, 29 Oct 2023 21:32:51 +0000</updated>
                            <resolved>Wed, 19 Oct 2022 14:08:12 +0000</resolved>
                                                    <fixVersion>6.2.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="4911288" author="xgen-internal-githook" created="Tue, 18 Oct 2022 22:03:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Christopher Caplinger&apos;, &apos;email&apos;: &apos;christopher.caplinger@mongodb.com&apos;, &apos;username&apos;: &apos;UnicodeSnowman&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-69948&quot; title=&quot;Prevent entries with outdated txnNum entries from creating config.image_collection documents&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-69948&quot;&gt;&lt;del&gt;SERVER-69948&lt;/del&gt;&lt;/a&gt;: Strip needsRetryImage from findAndModify oplog entries&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6d866484e8245ae887ce4d870a132568a7132fa5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6d866484e8245ae887ce4d870a132568a7132fa5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4859366" author="daniel.gottlieb@10gen.com" created="Tue, 27 Sep 2022 17:46:43 +0000"  >&lt;p&gt;I don&apos;t know this well enough to confidently claim option two &quot;would just work&quot;, but I prefer that approach. I imagine it&apos;d be a simple thing to implement and throw up a patch build and see what signal we get from it.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;edit&lt;/b&gt; I should refresh webpages before adding a post-lunch comment&lt;/p&gt;</comment>
                            <comment id="4858966" author="jason.chan" created="Tue, 27 Sep 2022 16:14:07 +0000"  >&lt;p&gt;The second path seems reasonable to me and the server change itself shouldn&apos;t be too hard. The idea will be to modify &lt;a href=&quot;https://github.com/10gen/mongo/blob/d9396d167a6ceb8f43b0b9ac017e562c89bc236a/src/mongo/db/pipeline/document_source_find_and_modify_image_lookup.cpp#L207&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;DocumentSourceFindAndModifyImageLookup&lt;/a&gt; so that instead of returning a no-op when we fail to look up the corresponding image entry in the donor replica set, we transform the document by stripping the needsRetryImage field. Testing should be hopefully straightforward as well with unit testing, some of which &lt;a href=&quot;https://github.com/10gen/mongo/blob/a9d6de1242318413f29ccb2b233fd7885af4d083/src/mongo/db/pipeline/document_source_find_and_modify_image_lookup_test.cpp#L52&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;already exist&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I think for completion, we should consider also adding a jstest so we can verify the behavior that no image entries get generated on the recipient replica set. This will be harder to write as we would need to synchronize the user writes with the reads from the tenant oplog fetcher on the donor so that the txnNumber processed by the fetcher at the time becomes stale.&lt;/p&gt;</comment>
                            <comment id="4858913" author="christopher.caplinger" created="Tue, 27 Sep 2022 16:04:44 +0000"  >&lt;p&gt;Spoke with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=didier.nadeau%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;didier.nadeau@mongodb.com&quot;&gt;didier.nadeau@mongodb.com&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=suganthi.mani%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;suganthi.mani@mongodb.com&quot;&gt;suganthi.mani@mongodb.com&lt;/a&gt; about this yesterday and it seems like we have a couple of options here:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Update our test fixture(s) dbhash check logic to avoid failure for config.image_collection hash discrepancies during tenant migration passthrough suites&lt;/li&gt;
	&lt;li&gt;Strip &#8220;needRetryImage&#8221; field from old retryable writes oplog entries in a given session to avoid unnecessarily generating image_collection entries&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Note, the second option will not only fix the (admittedly rare) test failure, but will resolve the underlying issue and prevent any future confusion if/when this happens in a production environment. The consensus on the serverless team is to go with the second option above, but I&apos;m not personally sure how much effort will be involved here, but will likely involve some more specific scheduling concerns to actually do the work.&lt;/p&gt;

&lt;p&gt;cc &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jason.chan%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;jason.chan@mongodb.com&quot;&gt;jason.chan@mongodb.com&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb@mongodb.com&quot;&gt;daniel.gottlieb@mongodb.com&lt;/a&gt; for thoughts/opinions on a fix for this since you guys have some context.&lt;/p&gt;</comment>
                            <comment id="4856562" author="steven.vannelli" created="Mon, 26 Sep 2022 19:40:07 +0000"  >&lt;p&gt;Keeping this in Needs Scheduling until Chris and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=suganthi.mani%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;suganthi.mani@mongodb.com&quot;&gt;suganthi.mani@mongodb.com&lt;/a&gt; talk about the solution.&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </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>2.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>Mon, 26 Sep 2022 19:40:07 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 16 weeks, 1 day 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>
                            1 year, 16 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.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>christopher.caplinger@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jason.chan@mongodb.com</customfieldvalue>
            <customfieldvalue>steven.vannelli@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1bjgf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0u8jk:</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="6597">Server Serverless 2022-10-17</customfieldvalue>
    <customfieldvalue id="6598">Server Serverless 2022-10-31</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|i1b5lr:</customfieldvalue>

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