<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:51:41 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-39321] Re-enable the CheckReplDBHashInBackground hook</title>
                <link>https://jira.mongodb.org/browse/SERVER-39321</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;All usages of the hook were temporarily removed as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39139&quot; title=&quot;Remove testing support for secondary transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39139&quot;&gt;&lt;del&gt;SERVER-39139&lt;/del&gt;&lt;/a&gt;. This ticket serves as a placeholder for the work of re-enabling those usages, as well as to more easily track where they should be put back.&lt;/p&gt;</description>
                <environment></environment>
        <key id="681289">SERVER-39321</key>
            <summary>Re-enable the CheckReplDBHashInBackground hook</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="gregory.wlodarek@mongodb.com">Gregory Wlodarek</assignee>
                                    <reporter username="vesselina.ratcheva@mongodb.com">Vesselina Ratcheva</reporter>
                        <labels>
                            <label>open_todo_in_code</label>
                            <label>prepare_testing</label>
                            <label>txn_storage</label>
                    </labels>
                <created>Thu, 31 Jan 2019 20:29:11 +0000</created>
                <updated>Sun, 29 Oct 2023 22:24:32 +0000</updated>
                            <resolved>Thu, 25 Apr 2019 15:07:35 +0000</resolved>
                                                    <fixVersion>4.1.11</fixVersion>
                                    <component>Replication</component>
                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2224692" author="xgen-internal-githook" created="Thu, 25 Apr 2019 15:08:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;username&apos;: &apos;GWlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39321&quot; title=&quot;Re-enable the CheckReplDBHashInBackground hook&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39321&quot;&gt;&lt;del&gt;SERVER-39321&lt;/del&gt;&lt;/a&gt; Add testing around the semnatics of the find and dbHash commands when using the option in the presence of prepared transactions&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/db0e16980ad20eeb9d4c7cc7e07f64409fc3edb9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/db0e16980ad20eeb9d4c7cc7e07f64409fc3edb9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2224691" author="xgen-internal-githook" created="Thu, 25 Apr 2019 15:07:39 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;username&apos;: &apos;GWlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39321&quot; title=&quot;Re-enable the CheckReplDBHashInBackground hook&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39321&quot;&gt;&lt;del&gt;SERVER-39321&lt;/del&gt;&lt;/a&gt; Re-enable the CheckReplDBHashInBackground hook&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5ae506cb8fc73074bb46d6be9667ed1825e98d69&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5ae506cb8fc73074bb46d6be9667ed1825e98d69&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2224689" author="xgen-internal-githook" created="Thu, 25 Apr 2019 15:07:24 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;username&apos;: &apos;GWlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39321&quot; title=&quot;Re-enable the CheckReplDBHashInBackground hook&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39321&quot;&gt;&lt;del&gt;SERVER-39321&lt;/del&gt;&lt;/a&gt; add setIgnorePrepared(false) to dbHash, find and getMore&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/935157a3cf54ca802419cd8d92ff4b137fbe2949&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/935157a3cf54ca802419cd8d92ff4b137fbe2949&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2204662" author="max.hirschhorn@10gen.com" created="Mon, 8 Apr 2019 03:37:03 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I&apos;d like to discuss with Max the specifics of the new tests he proposed.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;, I had added calls to &lt;tt&gt;opCtx-&amp;gt;recoveryUnit()-&amp;gt;setIgnorePrepared(false)&lt;/tt&gt; without adding testing around the semantics of the find, getMore, and dbHash commands when using the &lt;tt&gt;$_internalReadAtClusterTime&lt;/tt&gt; option in the presence of prepared transactions. Since the &lt;tt&gt;$_internalReadAtClusterTime&lt;/tt&gt; option is effectively simulating one-shot reads with {&lt;tt&gt;readConcern: {level: &quot;snapshot&quot;, atClusterTime: ...&lt;/tt&gt;}}, it must wait for decision of the prepared transaction before returning data back to the client if the commit/abort timestamp would fall within the window of the specified cluster time. However, the requirement for the &lt;tt&gt;$_internalReadAtClusterTime&lt;/tt&gt; option is that it must not prevent oplog application while doing so.&lt;/p&gt;

&lt;p&gt;To more explicitly enumerate the cases for testing I have in mind:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Perform a write in prepared transaction, followed by a write outside of a transaction. It should be possible to specify &lt;tt&gt;$_internalReadAtClusterTime&lt;/tt&gt; as the timestamp of the second write without error, but it should block until the prepared transaction is committed or aborted. Finally, commit the prepared transaction.
	&lt;ul&gt;
		&lt;li&gt;Does &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40105&quot; title=&quot;Improve diagnostic information in currentOp for excessive write conflicts and prepare conflicts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40105&quot;&gt;&lt;del&gt;SERVER-40105&lt;/del&gt;&lt;/a&gt; give enough of an indication for the &lt;tt&gt;find&lt;/tt&gt;, &lt;tt&gt;getMore&lt;/tt&gt;, or &lt;tt&gt;dbHash&lt;/tt&gt; operation that it is blocked on a prepare conflict?&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Do #1 but instead read from a secondary. Additionally also perform a variety of DDL operations that are compatible with the locks taken by the primary (these can likely be lifted from &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.9/jstests/noPassthrough/apply_ops_DDL_operation_does_not_take_global_X.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the &lt;tt&gt;apply_ops_DDL_operation_does_not_take_global_X.js&lt;/tt&gt; test&lt;/a&gt;) before committing the prepared transaction.
	&lt;ul&gt;
		&lt;li&gt;Assert that the data returned and/or the hash returned by the secondary matches that of the primary. Repeat the reads on both the primary and secondary after committing the prepared transaction and assert that the data returned and/or the hash returned the second time matches that of the first time. &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.9/jstests/replsets/dbhash_read_at_cluster_time.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;The &lt;tt&gt;dbhash_read_at_cluster_time.js&lt;/tt&gt; test&lt;/a&gt; does both already but not in the presence of prepared transactions.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="2200810" author="milkie" created="Wed, 3 Apr 2019 17:13:35 +0000"  >&lt;p&gt;The priority for this ticket work will be to re-enable the hook and investigate any failures.  I&apos;d like to discuss with Max the specifics of the new tests he proposed.&lt;/p&gt;</comment>
                            <comment id="2138994" author="max.hirschhorn@10gen.com" created="Tue, 5 Feb 2019 22:46:41 +0000"  >&lt;p&gt;Work on this ticket should include adding a test that (1) ensures the find, getMore, and dbHash commands block when attempting to read prepared data, and (2) ensure these operations being blocked doesn&apos;t prevent oplog application from proceeding. #2 requires one of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39096&quot; title=&quot;Prepared transactions and DDL operations can deadlock on a secondary, if a reader blocks on a prepared document&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39096&quot;&gt;&lt;del&gt;SERVER-39096&lt;/del&gt;&lt;/a&gt; or &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39372&quot; title=&quot;Make secondary lock acquisition for DDL operations consistent with behavior on primary&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39372&quot;&gt;&lt;del&gt;SERVER-39372&lt;/del&gt;&lt;/a&gt; to be completed.&lt;/p&gt;</comment>
                            <comment id="2137290" author="vesselina.ratcheva" created="Mon, 4 Feb 2019 20:47:26 +0000"  >&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb/mongo/commit/939ecfe7a93365145bb876bcab6584501e407fdb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;commit&lt;/a&gt; for the removal left some TODOs, which are meant to be addressed here.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="677165">SERVER-39169</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="715319">SERVER-40086</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="683624">SERVER-39372</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="674940">SERVER-39096</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="676205">SERVER-39139</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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>Tue, 5 Feb 2019 22:46:41 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 41 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-39169'>SERVER-39169</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-1032</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>
                            4 years, 41 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gregory.wlodarek@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>vesselina.ratcheva@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hukszb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|huikfb:</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="2829">Storage NYC 2019-04-08</customfieldvalue>
    <customfieldvalue id="2830">Storage NYC 2019-04-22</customfieldvalue>
    <customfieldvalue id="2908">Storage NYC 2019-05-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|hukf8n:</customfieldvalue>

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