<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:20:02 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-49502] ninja and/or scons should prompt for confirmation when using a large &quot;j&quot; value without icecream</title>
                <link>https://jira.mongodb.org/browse/SERVER-49502</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Compiling with -j400 without icecream support is a recipe for disaster. It&apos;s an easy mistake to make, and it can happen due to either user misconfiguration or bugs in the ninja generator.&lt;/p&gt;

&lt;p&gt;On virtual workstations, SSH connections will time out, and the only resolution is to reset the host.&lt;/p&gt;

&lt;p&gt;It would be nice to add a prompt to say: &quot;Are you sure you want to do this? You tried to compile with 400 jobs but your system only has 16 cores and icecream support isn&apos;t enabled. This will not end well&quot;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1409219">SERVER-49502</key>
            <summary>ninja and/or scons should prompt for confirmation when using a large &quot;j&quot; value without icecream</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="tausif.rahman@mongodb.com">Tausif Rahman</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Tue, 14 Jul 2020 20:18:51 +0000</created>
                <updated>Sat, 10 Jun 2023 23:28:50 +0000</updated>
                            <resolved>Tue, 30 May 2023 21:08:34 +0000</resolved>
                                                                                        <votes>2</votes>
                                    <watches>14</watches>
                                                                                                                <comments>
                            <comment id="5462307" author="JIRAUSER1253549" created="Tue, 30 May 2023 21:24:00 +0000"  >&lt;p&gt;This was implemented in &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;.&lt;/p&gt;</comment>
                            <comment id="5462275" author="JIRAUSER1257562" created="Tue, 30 May 2023 21:09:32 +0000"  >&lt;p&gt;This has already been implemented in a different ticket.&#160;&lt;/p&gt;</comment>
                            <comment id="5312749" author="louis.williams" created="Thu, 30 Mar 2023 17:00:27 +0000"  >&lt;p&gt;In recent history I have accidentally run a large j compile with the icecream daemon turned off and it ran slowly but did not pin my host, so anecdotally that may in fact be resolved. Out of fear, I have not confirmed that compiling without icecream in my ninja configuration does not have the original problem I described.&lt;/p&gt;

&lt;p&gt;That said, I also can&apos;t think of a time that I&apos;ve hit this recently. Because Ctrl-Cing Scons doesn&apos;t wipe out the build.ninja file anymore, I don&apos;t have to manually run Scons as much. That, and with the workstation setup script, it seems harder to hit this problem than when the virtual workstations were brand new.&lt;/p&gt;</comment>
                            <comment id="5312728" author="ryan.egesdahl" created="Thu, 30 Mar 2023 16:53:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gomezferro%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gomezferro@mongodb.com&quot;&gt;daniel.gomezferro@mongodb.com&lt;/a&gt; If you are using an x86_64 virtual workstation created anytime within the past couple of years and haven&#8217;t built and installed your own Icecream or something, you have our patched version. Otherwise, it needs to be version 1.4 installed from our PPA.&lt;/p&gt;</comment>
                            <comment id="5312722" author="JIRAUSER1263153" created="Thu, 30 Mar 2023 16:49:01 +0000"  >&lt;blockquote&gt;&lt;p&gt;make sure you are using our patched Icecream&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ryan.egesdahl%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;ryan.egesdahl@mongodb.com&quot;&gt;ryan.egesdahl@mongodb.com&lt;/a&gt;&#160;how do we check that?&lt;/p&gt;</comment>
                            <comment id="5312666" author="ryan.egesdahl" created="Thu, 30 Mar 2023 16:27:23 +0000"  >&lt;p&gt;There is an edge case in our concurrency limiter where if the Icecream daemon wasn&apos;t working properly, it could still cause a large local concurrency. In addition, there was an upstream Icecream bug that would cause resource overuse in cases where a compile job was directed to the local host. We have fixed the resource overuse bug already in our patched Icecream binary that gets installed on virtual workstations, so this should not be happening for us anymore. If you are still seeing this happen, please make sure you are using our patched Icecream.&lt;/p&gt;</comment>
                            <comment id="5267839" author="JIRAUSER1263153" created="Mon, 13 Mar 2023 15:13:34 +0000"  >&lt;p&gt;We should also check that iceccd is running.&lt;/p&gt;</comment>
                            <comment id="5082518" author="JIRAUSER1268551" created="Thu, 29 Dec 2022 23:58:17 +0000"  >&lt;p&gt;We are making a ninja python wrapper for metrics collection. We should be able to add this check to that same wrapper. The ticket is linked.&lt;/p&gt;</comment>
                            <comment id="3323591" author="daniel.gottlieb@10gen.com" created="Wed, 5 Aug 2020 20:51:47 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=louis.williams&quot; class=&quot;user-hover&quot; rel=&quot;louis.williams&quot;&gt;louis.williams&lt;/a&gt;&#160;looking&#160;at this problem from a different angle: we can probably come up with a shell function to replace &lt;tt&gt;ninja&lt;/tt&gt; that examines the ninja file being used and checks for &quot;ICECC=icecc&quot; on hygienic or &quot;&amp;#45;&amp;#45;icecream&quot; being present in the scons invocation (technically a bit hard given that gets split across lines; simply grepping is probably sufficient). The bash function can then scan for a large &lt;tt&gt;&amp;#45;j&lt;/tt&gt; and error in the case of a large &lt;tt&gt;-j&lt;/tt&gt; but not seeing icecream being used.&lt;/p&gt;

&lt;p&gt;Obviously not the ideal user experience (extending to non-workstation users requires copying/writing it for themselves), but it&apos;s plausible that could be auto-installed on ec2 workstations.&lt;/p&gt;</comment>
                            <comment id="3323557" author="acm" created="Wed, 5 Aug 2020 20:40:19 +0000"  >&lt;p&gt;I don&apos;t believe it is possible for us to add this sort of conditional argument check to our generated Ninja file. I&apos;m not aware of anything in the syntax that would let us express it, nor of anything that exposes the user provided number of jobs such that we could query it.&lt;/p&gt;

&lt;p&gt;Implementing the check in SCons would have no effect for developers using Ninja, because the concurrency argument passed to SCons has no effect on the generated Ninja file. A user can invoke &lt;tt&gt;ninja&lt;/tt&gt; on the generated file with any desired concurrency and we have no way to stop that.&lt;/p&gt;

&lt;p&gt;We could, I suppose, offer something for direct SCons builds, but I&apos;m not inclined to make SCons an interactive tool. It isn&apos;t really designed for that.&lt;/p&gt;

&lt;p&gt;Another option would be to have the concurrency used when generating Ninja configure a Ninja pool of the same size and use that for all jobs. But that would mean that the value of `-j` used when running SCons to generate the Ninja file would be an upper bound on the available Ninja concurrency. It would be surprising, and I expect developers would frequently end up generating Ninja files for which real concurrency was not available, since they wouldn&apos;t ask for concurrency when running the Ninja Generator.&lt;/p&gt;

&lt;p&gt;A better answer is to ensure that virtual workstations provide an emergency &lt;tt&gt;sshd&lt;/tt&gt; that is running in the realtime scheduling class. There are many ways to accidentally saturate a remote machine such that it becomes unavailable via &lt;tt&gt;ssh&lt;/tt&gt; running in the normal user scheduling class.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="2211400">SERVER-72132</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="2217177">SERVER-72349</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1641382">SERVER-56623</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1641382">SERVER-56623</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2211400">SERVER-72132</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>10.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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25130"><![CDATA[Server Development Platform]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 5 Aug 2020 20:40:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        36 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-3180</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>iryna.zhuravlova@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            36 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alex.neben@mongodb.com</customfieldvalue>
            <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gomezferro@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>iryna.zhuravlova@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>ryan.egesdahl@mongodb.com</customfieldvalue>
            <customfieldvalue>tausif.rahman@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxuss7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr4tdj:</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="4143">Dev Platform 2020-08-24</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|hxuf1j:</customfieldvalue>

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