<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:35:10 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-33972] Bind jstestfuzz version to server version</title>
                <link>https://jira.mongodb.org/browse/SERVER-33972</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;As the fuzzer becomes more dependent on code in the server repo, like the rollback fixture and the impending preamble hooks, it would be nice to not have to make a change in the server, wait a while, change the fuzzer, wait a bit more and go back to the server to remove code left in place to support the old fuzzer behavior.&lt;/p&gt;

&lt;p&gt;We should be able to do by making jstestfuzz a module in evergreen.yml&lt;/p&gt;</description>
                <environment></environment>
        <key id="513379">SERVER-33972</key>
            <summary>Bind jstestfuzz version to server version</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-stm">Backlog - Server Tooling and Methods (STM)</assignee>
                                    <reporter username="robert.guo@mongodb.com">Robert Guo</reporter>
                        <labels>
                            <label>stm</label>
                    </labels>
                <created>Mon, 19 Mar 2018 14:18:44 +0000</created>
                <updated>Tue, 6 Dec 2022 03:34:50 +0000</updated>
                                                                            <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4539857" author="steven.vannelli" created="Tue, 10 May 2022 21:27:22 +0000"  >&lt;p&gt;Moving this ticket to the Backlog and removing the &quot;Backlog&quot; fixVersion as per our latest policy for using fixVersions. &lt;/p&gt;</comment>
                            <comment id="2231370" author="max.hirschhorn@10gen.com" created="Thu, 2 May 2019 04:19:18 +0000"  >&lt;p&gt;Every time I come back to think about this ticket, I&apos;m skeptical about doing it. Now that EVG-727 is resolved, having the 10gen/jstestfuzz repository as a module &lt;em&gt;would&lt;/em&gt; mean that every mongodb/mongo commit has the &quot;correct&quot; version of the &lt;tt&gt;rollback_test.js&lt;/tt&gt; fixture. There wouldn&apos;t be any rough edges around stepback.&lt;/p&gt;

&lt;p&gt;I acknowledge the dance required to be able to do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40469&quot; title=&quot;Remove the expectPreparedTxnsDuringRollback parameter to the RollbackTest constructor&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40469&quot;&gt;&lt;del&gt;SERVER-40469&lt;/del&gt;&lt;/a&gt; and not break the rollback fuzzer is awkward. However, I worry as we add more fuzzers which run on more branches that having the 10gen/jstestfuzz repository be a module isn&apos;t enough to solve the underlying issue of how it and the mongodb/mongo are loosely coupled. For better or worse, we won&apos;t always backport the changes to the &lt;tt&gt;rollback_test.js&lt;/tt&gt; so what should happen if the API across branches diverges? Maybe a different answer is &quot;they shouldn&apos;t&quot; and we only have a single version of &lt;tt&gt;rollback_test.js&lt;/tt&gt; across all branches?&lt;/p&gt;

&lt;p&gt;The only end state I really care about is that the fuzzer &lt;b&gt;doesn&apos;t&lt;/b&gt; have separate branches corresponding to each branch of the mongodb/mongo repository. Maintaining several different versions of resmoke.py across all supported branches has proven to be challenging.&lt;/p&gt;</comment>
                            <comment id="1854807" author="robert.guo" created="Wed, 4 Apr 2018 13:04:26 +0000"  >&lt;p&gt;I&apos;m moving the ticket over to 4.1 desired due to additional discussion that came out of the CR. We can revisit this again after 4.0 &lt;/p&gt;</comment>
                            <comment id="1850082" author="robert.guo" created="Fri, 30 Mar 2018 14:30:11 +0000"  >&lt;p&gt;This ticket will result in some unintended side effects for changing the fuzzer and running fuzzer tests. The intention of this ticket is to solve the problem of having to go back and forth when making changes to the server that the fuzzer depends on. When making any change that requires coordination between the server and the fuzzer, the existing workflow requires the following steps &lt;/p&gt;

&lt;p&gt;1. change the server code on master and keep the old server code&lt;br/&gt;
1a. backport the server change to other branches&lt;br/&gt;
2. wait until all fuzzer tasks for all previous commits have run&lt;br/&gt;
3. change the fuzzer code to support the new server code, keep the old fuzzer code for compatibility with older server branches if needed&lt;br/&gt;
4. remove the old server code to support the old fuzzer code, backport to all the branches in step 1a.&lt;/p&gt;

&lt;p&gt;This ticket will allow fuzzer changes to follow the same workflow as the enterprise modules and remove the need for steps 2 and 4. The new workflow will look like:&lt;br/&gt;
1. Change server code&lt;br/&gt;
1a. At the same time, backport all changes&lt;br/&gt;
2. Immediately afterwards, change fuzzer code&lt;/p&gt;

&lt;p&gt;This workflow is inherently racy and can result in failures in a small number of commits (usually 1) that start between when the server and the fuzzer code is pushed. A similar problem exists for the enterprise module and comes up infrequently. There is discussion on possible fixes in EVG-727 but no conclusion yet. None of the proposed solutions in EVG-727 so far affects the efficacy of this ticket.&lt;/p&gt;

&lt;p&gt;A notable caveat to this new workflow is that the changes to server master, backports, and changes to the fuzzer repo need to happen simultaneously. Because the fuzzer repo is not versioned according to the server codebase like other modules. If the backports don&apos;t happen immediately, the existing 4 step workflow still needs to be followed.&lt;/p&gt;

&lt;p&gt;As for unintended consequences of doing the work in this ticket, first is that people can no longer restart failing fuzzer tasks caused by fuzzer bugs (not server bugs) and have them succeed as a result of pulling in an updated fuzzer version. This should be the desirable behavior and is consistent with that of other modules.&lt;/p&gt;

&lt;p&gt;Another side-effect/benefit is that we can now use &lt;tt&gt;evergreen patch-set-module&lt;/tt&gt; for patch builds to the fuzzer repo instead of making manual changes to use a forked repo to evergreen,yml. This again seems desirable to me.&lt;/p&gt;

&lt;p&gt;Finally, stepbacks need to be turned off for fuzzer tasks to prevent a server bug from stepping back to previous tasks from using an incompatible/outdated version of the fuzzer. &lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25142"><![CDATA[Server Tooling & Methods]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 2 May 2019 04:19:18 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 39 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 39 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-stm</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>robert.guo@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|htt0bz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hse2nj:</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_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </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|htsmjb:</customfieldvalue>

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