<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:22:29 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-50372] ninja and SCons do not see each others ccache</title>
                <link>https://jira.mongodb.org/browse/SERVER-50372</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;When building first with SCons or ninja, then deleting the built object file, and then rebuilding with the opposing tool, SCons and ninja do not use each others ccache and instead will build and put the object file in ccache twice with different hashes.&lt;/p&gt;

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

&lt;p&gt;Attached log files show two cache hits, but with different hashes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1445661">SERVER-50372</key>
            <summary>ninja and SCons do not see each others ccache</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="ryan.egesdahl@mongodb.com">Ryan Egesdahl</assignee>
                                    <reporter username="daniel.moody@mongodb.com">Daniel Moody</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Aug 2020 19:21:05 +0000</created>
                <updated>Thu, 3 Sep 2020 19:57:47 +0000</updated>
                            <resolved>Thu, 3 Sep 2020 19:57:47 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3375506" author="ryan.egesdahl" created="Thu, 3 Sep 2020 19:57:47 +0000"  >&lt;p&gt;The reason this happens is because Ninja adds some arguments to the compiler command line, such as &lt;tt&gt;-MMD&lt;/tt&gt;, that SCons does not and does not need. In particular, these options are present to allow Ninja to do dependency tracking on files, which SCons does internally (and, frankly, in a much more reliable way).&lt;/p&gt;

&lt;p&gt;While we could possibly do some work trying to add the options to the compiler command line produced by SCons, the argument order would be difficult to get right, and this matters because arugment order affects the hash produced by ccache. And as stated previously, SCons does not actually need these options to do dependency tracking.&lt;/p&gt;

&lt;p&gt;Because of the amount of work likely to be involved in making the hashes match combined with the fact that the work would be superfluous with SCons and likely pointless given how developers generally don&apos;t switch between pure SCons and Ninja builds, we feel that this effort would be unprofitable. We would like to instead focus our efforts on making SCons incremental builds fast enough that developers don&apos;t need Ninja anymore.&lt;/p&gt;</comment>
                            <comment id="3374968" author="april.schoffer" created="Thu, 3 Sep 2020 15:56:34 +0000"  >&lt;p&gt;To write up rationale for won&apos;t fix.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="274486" name="ninja_ccache.log" size="3701" author="daniel.moody@mongodb.com" created="Tue, 18 Aug 2020 19:22:12 +0000"/>
                            <attachment id="274487" name="scons_ccache.log" size="3274" author="daniel.moody@mongodb.com" created="Tue, 18 Aug 2020 19:22:12 +0000"/>
                    </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>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 3 Sep 2020 15:56:34 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 22 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_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>ryan.egesdahl@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 22 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>april.schoffer@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>ryan.egesdahl@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hy0zyn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxnn3z:</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="4162">Dev Platform 2020-09-07</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;reproduced on master commit: 0662433ac038f4f3cf137a1be30ca245c180e990&lt;/p&gt;

&lt;p&gt;Repro system:&lt;br/&gt;
 Ubuntu 18.04 virtual workstation&lt;/p&gt;

&lt;p&gt;Steps to reproduce:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Start with clean checkout and clean cache:&lt;br/&gt;
 git clean -xfd&lt;br/&gt;
 ccache -Cz&lt;/li&gt;
	&lt;li&gt;build with scons&lt;br/&gt;
 /usr/bin/python3.8 &quot;buildscripts/scons.py&quot; CCACHE=ccache build/opt/mongo/db/global_settings.o&lt;/li&gt;
	&lt;li&gt;delete the object file and set ccache to log:&lt;br/&gt;
 rm build/opt/mongo/db/global_settings.o&lt;br/&gt;
 export CCACHE_LOGFILE=scons_ccache.log&lt;/li&gt;
	&lt;li&gt;build again&lt;br/&gt;
 /usr/bin/python3.8 &quot;buildscripts/scons.py&quot; CCACHE=ccache build/opt/mongo/db/global_settings.o&lt;/li&gt;
	&lt;li&gt;now set the log file to something else:&lt;br/&gt;
 export CCACHE_LOGFILE=ninja_ccache.log&lt;/li&gt;
	&lt;li&gt;generate ninja and build&lt;br/&gt;
 /usr/bin/python3.8 &quot;buildscripts/scons.py&quot; CCACHE=ccache --ninja --build-tools=next generate-ninja&lt;br/&gt;
 ninja build/opt/mongo/db/global_settings.o&lt;/li&gt;
	&lt;li&gt;Now remove the file and cache log so we can minimize the log&lt;br/&gt;
 rm ninja_ccache.log&lt;br/&gt;
 rm build/opt/mongo/db/global_settings.o&lt;br/&gt;
 ninja build/opt/mongo/db/global_settings.o&lt;/li&gt;
	&lt;li&gt;compare the log files.&lt;/li&gt;
&lt;/ol&gt;
</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|hy0m7z:</customfieldvalue>

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