<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:39:46 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-56623] Guard against large compiles without icecream enabled in the invocation</title>
                <link>https://jira.mongodb.org/browse/SERVER-56623</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;b&gt;Proposed Solution&lt;/b&gt;&lt;br/&gt;
This ticket specifically addresses the case of forgetting to include icecream in the scons/ninja invocation of a build and using a large -j value. See &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56623?focusedCommentId=3703845&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3703845&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;comment&lt;/a&gt; for more details.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Original Request&lt;/b&gt;&lt;br/&gt;
There have been various instances reported in #evergreen-workstations where users&apos; workstations were unresponsive due to running a large -j value compile without icecream enabled. These issues can occur if a user forgets the icecream daemon isn&apos;t running, if there are issues with the icecream cluster, or if the user omits icecream from their invocation.&lt;/p&gt;

&lt;p&gt;It would be great if the workstations could protect against such compiles. This &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-49502?focusedCommentId=3323591&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3323591&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;comment&lt;/a&gt; describes a potential approach to address forgetting icecream from the invocation.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1641382">SERVER-56623</key>
            <summary>Guard against large compiles without icecream enabled in the invocation</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="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="daniel.moody@mongodb.com">Daniel Moody</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                            <label>workstations</label>
                    </labels>
                <created>Fri, 5 Mar 2021 21:58:38 +0000</created>
                <updated>Sun, 29 Oct 2023 21:54:05 +0000</updated>
                            <resolved>Tue, 4 May 2021 20:49:44 +0000</resolved>
                                                    <fixVersion>4.9.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="3754950" author="xgen-internal-githook" created="Tue, 4 May 2021 18:46:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Moody&apos;, &apos;email&apos;: &apos;daniel.moody@mongodb.com&apos;, &apos;username&apos;: &apos;dmoody256&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56623&quot; title=&quot;Guard against large compiles without icecream enabled in the invocation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56623&quot;&gt;&lt;del&gt;SERVER-56623&lt;/del&gt;&lt;/a&gt; make icecream guard from hanging system on large -j&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0b620c24c55859f325ce23daa90b3c1c55bc76cb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0b620c24c55859f325ce23daa90b3c1c55bc76cb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3739772" author="JIRAUSER1253549" created="Mon, 26 Apr 2021 20:27:06 +0000"  >&lt;p&gt;Code Review: &lt;a href=&quot;https://mongodbcr.appspot.com/766980004/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://mongodbcr.appspot.com/766980004/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3706048" author="maria.vankeulen" created="Wed, 7 Apr 2021 17:44:39 +0000"  >&lt;p&gt;Gotcha, thanks for the additional context. Splitting the icecream-side work into another ticket sounds good to me.&lt;/p&gt;</comment>
                            <comment id="3704187" author="JIRAUSER1253549" created="Tue, 6 Apr 2021 21:13:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=maria.vankeulen&quot; class=&quot;user-hover&quot; rel=&quot;maria.vankeulen&quot;&gt;maria.vankeulen&lt;/a&gt; That would be bit more tricky, because the ninja file after generation is static and is generated from a system state of some previous time, so icecream daemon state is subject to change. &lt;/p&gt;

&lt;p&gt;I think that would more appropriately be worked into the icecream interface instead. So currently there are icerun and icecc, but instead we could have our own internal icecream script which can test icecream functioning and forward the commands to the real icecream scripts and bins, otherwise hard fail. Actually icecream itself should be doing something like this, it&apos;s just not graceful in its own failures.&lt;/p&gt;

&lt;p&gt;I think something like that could spin off to another ticket, and this is scoped just to prevent large jobs from hanging the system when icecream was not selected.&lt;/p&gt;</comment>
                            <comment id="3703991" author="maria.vankeulen" created="Tue, 6 Apr 2021 20:09:55 +0000"  >&lt;p&gt;Sounds great, thank you &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.moody&quot; class=&quot;user-hover&quot; rel=&quot;daniel.moody&quot;&gt;daniel.moody&lt;/a&gt;! Is it feasible to also guard against the case of running a large build with the icecream daemon turned off?&lt;/p&gt;</comment>
                            <comment id="3703845" author="JIRAUSER1253549" created="Tue, 6 Apr 2021 18:53:47 +0000"  >&lt;p&gt;Planned approach will be for pure scons build, if -j is not set, scons will check for icecream being set, and if its not set limit the jobs to number of cpus. An additional optional --force-jobs will be used to override this behavior. A message will always be printed saying scons is limiting the number of jobs if it takes such action.&lt;/p&gt;

&lt;p&gt;For the ninja side, If no icecream is in use, scons will generate all pools with a max depth&#160;of the max cpus, and it will generate an extra build edge which will be built first and always rebuilt. This can be accomplished with a build edge with no dependencies, a single input which is the ninja file itself, and does not produce its output, and is listed as the first build edge in the ninja file. This build edge will echo that the number of jobs is being limited due to no icecream and to regenerate if not desired.&lt;/p&gt;

&lt;p&gt;EDIT:&lt;br/&gt;
A couple of follow on notes:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I did not go with a hard and early fail, because while that would work well for scons, for ninja, a build edge can&apos;t really stop the build if a large j was selected. Maybe the two should just work differently, hard early fails are generally better?&lt;/li&gt;
	&lt;li&gt;The above solution for ninja would mean that non-icecream ninja builds are &lt;b&gt;ALWAYS&lt;/b&gt; printing something about the max number jobs, even when you don&apos;t specify jobs. Ninja has no interface for that sort of thing from within a build edge. I imagine some people may not be able to tolerate such a message always being printed. It would not be printed only if you are using icecream, which I took as the default usecase with ninja.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="3673880" author="brooke.miller" created="Fri, 19 Mar 2021 16:53:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=robert.guo&quot; class=&quot;user-hover&quot; rel=&quot;robert.guo&quot;&gt;robert.guo&lt;/a&gt;&#160;mentioned it&apos;d probably be better to do this in the build system, so we&apos;ve reassigned this to SDP. FYI &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=april.schoffer&quot; class=&quot;user-hover&quot; rel=&quot;april.schoffer&quot;&gt;april.schoffer&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1409219">SERVER-49502</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1409219">SERVER-49502</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>1.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>Fri, 19 Mar 2021 16:53:46 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 40 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>EVG-19484</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>
                            2 years, 40 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>brooke.miller@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hyy6sf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hysymv:</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="4870">Dev Platform 2021-05-17</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|hyxt1j:</customfieldvalue>

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