<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:46:39 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-37664] Add support for doing resmoke.py process management through jasper</title>
                <link>https://jira.mongodb.org/browse/SERVER-37664</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/jasper&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/jasper&lt;/a&gt; is a library for doing process management through commands over a socket. Having process management available as a service means (1) we can consolidate the various implementations we have through the &lt;tt&gt;subprocess&lt;/tt&gt; / &lt;tt&gt;subprocess32&lt;/tt&gt; Python packages and the mongo shell&apos;s &lt;tt&gt;shell_utils_launcher.cpp&lt;/tt&gt; C++ code, and (2) we can allow tests to interact with the cluster in a potentially destructive way. #2 enables tools such as genny to be able to run performance workloads that measure the latency of operations after restarting a mongod or mongos process.&lt;/p&gt;

&lt;p&gt;MAKE-497 exposed jasper through the &lt;tt&gt;curator&lt;/tt&gt; binary.&lt;/p&gt;</description>
                <environment></environment>
        <key id="621612">SERVER-37664</key>
            <summary>Add support for doing resmoke.py process management through jasper</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</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="shreyas.kalyan@mongodb.com">Shreyas Kalyan</assignee>
                                    <reporter username="max.hirschhorn@mongodb.com">Max Hirschhorn</reporter>
                        <labels>
                            <label>tig-resmoke</label>
                    </labels>
                <created>Fri, 19 Oct 2018 13:42:47 +0000</created>
                <updated>Sun, 29 Oct 2023 22:27:19 +0000</updated>
                            <resolved>Wed, 14 Nov 2018 21:55:42 +0000</resolved>
                                                    <fixVersion>4.1.6</fixVersion>
                                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2062432" author="xgen-internal-githook" created="Wed, 14 Nov 2018 21:55:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Shreyas Kalyan&apos;, &apos;email&apos;: &apos;shreyaskalyan@gmail.com&apos;, &apos;username&apos;: &apos;shreyaskal&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37664&quot; title=&quot;Add support for doing resmoke.py process management through jasper&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37664&quot;&gt;&lt;del&gt;SERVER-37664&lt;/del&gt;&lt;/a&gt; Add support for doing resmoke.py process management through jasper&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ca5e2e4e3334c92062cad841a53da7f69711cdcc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ca5e2e4e3334c92062cad841a53da7f69711cdcc&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2042950" author="max.hirschhorn@10gen.com" created="Fri, 26 Oct 2018 04:54:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=shreyas.kalyan&quot; class=&quot;user-hover&quot; rel=&quot;shreyas.kalyan&quot;&gt;shreyas.kalyan&lt;/a&gt;, I would say at a high level, this ticket is made of the following pieces:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Introducing a new command line option &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=python|jasper&lt;/tt&gt; with &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=python&lt;/tt&gt; being the default and identical to the existing behavior.&lt;/li&gt;
	&lt;li&gt;Creating a version of &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.4/buildscripts/resmokelib/core/process.py&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the &lt;tt&gt;resmokelib.core.Process&lt;/tt&gt; class&lt;/a&gt; that sends an HTTP request to the jasper service rather than using the &lt;tt&gt;subprocess&lt;/tt&gt; package, but otherwise has an identical API. There&apos;s no API documentation for jasper but the appropriate endpoints to use for spawning a process, sending it a signal, and waiting for it to exit should hopefully be self-evident from their names in &lt;a href=&quot;https://github.com/tychoish/curator/blob/4712ee1532567a35df2c4a76877945d8ee51c386/vendor/github.com/mongodb/jasper/rest_service.go#L65-L82&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this list&lt;/a&gt;. It should be fine for now to have their logs go to separate files in &lt;tt&gt;Fixture.get_dbpath_prefix()&lt;/tt&gt; rather than being logged to the console.&lt;/li&gt;
	&lt;li&gt;When &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=jasper&lt;/tt&gt;, resmoke.py should download a pinned version of the &lt;tt&gt;curator&lt;/tt&gt; binary. You can use &lt;a href=&quot;https://s3.amazonaws.com/boxes.10gen.com/build/curator/curator-dist-&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://s3.amazonaws.com/boxes.10gen.com/build/curator/curator-dist-&lt;/a&gt;&amp;lt;variant&amp;gt;-&amp;lt;githash&amp;gt;.tar.gz as the URL, where &lt;tt&gt;variant&lt;/tt&gt; could be &quot;ubuntu1604&quot;, &quot;macos&quot;, or &quot;windows-64&quot; and should be determined at runtime via &lt;tt&gt;sys.platform&lt;/tt&gt;. Take a look at &lt;a href=&quot;https://evergreen.mongodb.com/waterfall/curator?task_filter=push&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://evergreen.mongodb.com/waterfall/curator?task_filter=push&lt;/a&gt; to see the other build variants if you&apos;d like, but I&apos;d say it isn&apos;t worth supporting the ability to download zSeries, ARM, or PowerPC binaries because we&apos;ll never run those locally for genny. The binary should be downloaded into a temporary directory and extracted into the &lt;tt&gt;build/&lt;/tt&gt; directory &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.4/buildscripts/clang_format.py#L119-L124&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;like with do with &lt;tt&gt;clang-format-3.8&lt;/tt&gt;&lt;/a&gt;. It should be checked for at the beginning to avoid downloading the &lt;tt&gt;curator&lt;/tt&gt; binary if it is already present and of the same version.&lt;/li&gt;
	&lt;li&gt;When &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=jasper&lt;/tt&gt;, resmoke.py should run &lt;tt&gt;curator jasper rest &amp;#45;&amp;#45;port=&amp;lt;basePort - 1 = 19999 by default&amp;gt;&lt;/tt&gt; at the beginning to start the service and terminate the process before exiting. This means spawning the &lt;tt&gt;curator&lt;/tt&gt; process should be the only usage of the &lt;tt&gt;subprocess&lt;/tt&gt; package (really the &lt;tt&gt;subprocess32&lt;/tt&gt; package) when &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=jasper&lt;/tt&gt;. The reasoning behind having the usage of jasper be aware of resmoke.py base port is to ensure it is possible to run resmoke.py with &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=jasper&lt;/tt&gt; on a shared Linux workstation. (Longer term we would want there to be a single instance of jasper running on the shared Linux workstation but that would mean resmoke.py could run processes as a different user than the resmoke.py Python process, which we haven&apos;t instruction Server engineers how to protect themselves against yet.)&lt;/li&gt;
	&lt;li&gt;Every usage of the &lt;tt&gt;resmokelib.core.Process&lt;/tt&gt; class should be replaced by a means of using &lt;tt&gt;resmokelib.core.Process&lt;/tt&gt; when &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=python&lt;/tt&gt; and using the new class when &lt;tt&gt;&amp;#45;&amp;#45;spawnUsing=jasper&lt;/tt&gt;. One way to achieve this would be to add a &lt;tt&gt;make_process()&lt;/tt&gt; function that constructs an instance of the appropriate class after consulting a variable defined in the config.py module.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="630448">SERVER-38017</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>2.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>Thu, 1 Nov 2018 17:25:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 13 weeks 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/EVG-8590'>EVG-8590</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-966</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, 13 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>shreyas.kalyan@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huastr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htzuiv:</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="2561">STM 2018-11-05</customfieldvalue>
    <customfieldvalue id="2563">STM 2018-11-19</customfieldvalue>

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

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