<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:27:05 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-74316] break up variants which cache unrelated builds</title>
                <link>https://jira.mongodb.org/browse/SERVER-74316</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Several compile variants have several sets of tasks which compile different things with different flags. There could be some optimization here by standardizing the flags and aggregating the tasks to a fewer tasks.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Investigate the main compile variants and if the different tasks which compile tasks can be combined for:&lt;br/&gt;
linux-x86-dynamic-compile-required&lt;br/&gt;
amazon-linux2-arm64-compile&lt;br/&gt;
linux-debug-aubsan-compile-required&lt;br/&gt;
linux-x86-dynamic-debug-compile-required&lt;br/&gt;
commit-queue&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;For example, the linux-x86-dynamic-compile-required has tasks like:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;standard compile_* tasks&lt;/li&gt;
	&lt;li&gt;crypt_* tasks&lt;/li&gt;
	&lt;li&gt;stitch_* tasks&lt;/li&gt;
	&lt;li&gt;integration_* tasks&lt;/li&gt;
	&lt;li&gt;libdeps_graph_linting&lt;/li&gt;
	&lt;li&gt;other various tasks&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Some of these tasks have different compile flags. Could the targets among these tasks all be built in a single task?&lt;/p&gt;</description>
                <environment></environment>
        <key id="2273610">SERVER-74316</key>
            <summary>break up variants which cache unrelated builds</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="daniel.moody@mongodb.com">Daniel Moody</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Feb 2023 16:58:22 +0000</created>
                <updated>Sun, 29 Oct 2023 21:25:48 +0000</updated>
                            <resolved>Fri, 17 Mar 2023 15:15:28 +0000</resolved>
                                                    <fixVersion>7.0.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5279795" author="xgen-internal-githook" created="Fri, 17 Mar 2023 04:46:58 +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-74316&quot; title=&quot;break up variants which cache unrelated builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-74316&quot;&gt;&lt;del&gt;SERVER-74316&lt;/del&gt;&lt;/a&gt; split out crypt and stitch builds to separate variants&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4f403ab89f26fabedb5221574ef1ae15c3a0d936&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4f403ab89f26fabedb5221574ef1ae15c3a0d936&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5238507" author="JIRAUSER1253549" created="Tue, 28 Feb 2023 22:52:43 +0000"  >&lt;p&gt;The question is what do we really need in the variant? In the current state of the yml, these are compile variants aimed at created binaries for test variants, yet many of these tasks also perform testing.&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Also in terms of priority, the linux-x86-dynamic-compile-required is one of the most run variants. Do we really need the ancillaries like crypt and stich which have special build flags here? could the live in another suggested compile variant?&lt;/p&gt;</comment>
                            <comment id="5238422" author="JIRAUSER1253549" created="Tue, 28 Feb 2023 22:18:54 +0000"  >&lt;p&gt;In the main variant here, linux-x86-dynamic-compile-required, we are building and caching 4 separate builds due to flags, we would expect one build generated in the variant, so I will list 3 builds that do not conform:&lt;/p&gt;

&lt;p&gt;crypt_create_lib: Use of specific flags SHLINKFLAGS_EXTRA=&lt;del&gt;Wl,-Bsymbolic -Wl,&lt;/del&gt;-no-gnu-unique CCFLAGS=-fno-gnu-unique&lt;br/&gt;
crypt_debug_create_lib: use of debug flags&lt;br/&gt;
stich_create_lib: use of dynamic-sdk (static build that is commonly confused as dynamic build)&lt;/p&gt;

&lt;p&gt;The other problem is that many of the tasks build the same targets, but use the cache as a distributed compiler to increase concurrency. This has the effect of pulling down entire builds repeatedly from the cache, where instead, the same mci could be used, or the test could download the binaries from s3 bucket. Also do the nature of dependency chains in the build there is not much randomness so the desired &quot;distributed compiler&quot; effect ends up not being very effective.&lt;br/&gt;
&#160;&lt;br/&gt;
The other variants suffer from the same problems, but to lesser degrees.&lt;/p&gt;</comment>
                            <comment id="5233989" author="JIRAUSER1268551" created="Mon, 27 Feb 2023 19:02:56 +0000"  >&lt;p&gt;I think they are built in multiple tasks for performance reasons. I bet though that there is no reason for different compile flags for most of these tasks though.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2281072">SERVER-74624</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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="25130"><![CDATA[Server Development Platform]]></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>Mon, 27 Feb 2023 19:02:56 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        46 weeks, 6 days 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_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>
                            46 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alex.neben@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1xkev:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1fzeg:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></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|i1x6k7:</customfieldvalue>

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