<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:14:42 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-69882] Audit usage of `throw()` in third party libraries</title>
                <link>https://jira.mongodb.org/browse/SERVER-69882</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;#SERVER-42810&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;SERVER-42810&lt;/a&gt; replaced usage of `throw()` in the codebase, but there&apos;s still some usage in third-party libraries. We should audit the usage before deciding whether we should remove it.&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2142795">SERVER-69882</key>
            <summary>Audit usage of `throw()` in third party libraries</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="andrew.morrow@mongodb.com">Andrew Morrow</assignee>
                                    <reporter username="celina.tala@mongodb.com">Celina Tala</reporter>
                        <labels>
                    </labels>
                <created>Wed, 21 Sep 2022 20:36:16 +0000</created>
                <updated>Thu, 3 Nov 2022 18:31:57 +0000</updated>
                            <resolved>Thu, 20 Oct 2022 14:00:53 +0000</resolved>
                                                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4915667" author="acm" created="Thu, 20 Oct 2022 14:00:54 +0000"  >&lt;p&gt;There is no action for us to take here.&lt;/p&gt;

&lt;p&gt;With the v3 toolchain and C&amp;#43;&amp;#43;17, it is not an error to write an empty &lt;tt&gt;throw()&lt;/tt&gt;, it just becomes equivalent to writing &lt;tt&gt;noexcept&lt;/tt&gt;. With the v4 toolchain in C&amp;#43;&amp;#43;20 mode, it is technically no longer supported to even write &lt;tt&gt;throw()&lt;/tt&gt;, however, none of the v4 toolchains appear to reject it, nor does VS 2022, because if any of them did one or more of our C&amp;#43;&amp;#43;20 canary builders on the waterfall would be failing.&lt;/p&gt;

&lt;p&gt;It also does not appear that any of our toolchains offer an opt-in diagnostic that would flag uses of &lt;tt&gt;throw()&lt;/tt&gt; as warnings that we could upgrade to errors, so we currently have no way to prevent future additions of &lt;tt&gt;throw()&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile, if there were any problematic &lt;tt&gt;throw()&lt;/tt&gt; statements latent in our code we would just fix them if/when one of clang, gcc, or MSVC started rejecting them in C&amp;#43;&amp;#43;20 mode. That would also mean that we would need to address any in our third_party trees as well, but so would the upstream maintainers (assuming they bother to stay current with stable compilers). Either way, we would address the issue by either pulling a new version from upstream, or making the change ourselves in our forks repo, sending a PR, and merging the fix back to our vendored copy.&lt;/p&gt;

&lt;p&gt;Basically, I don&apos;t think any audit is required and we can deal with it if it ever becomes an issue in practice.&lt;/p&gt;</comment>
                            <comment id="4846700" author="billy.donahue" created="Wed, 21 Sep 2022 21:31:56 +0000"  >&lt;p&gt;Dynamic exception specifiers like `throw()` were removed in C++17.&lt;/p&gt;

&lt;p&gt;The description &quot;Remove `throw()` from third party libraries&quot; may be stating the requested action too simply.&lt;/p&gt;

&lt;p&gt;We are not interested in wiping out the appearances of `throw()` entirely.&lt;/p&gt;

&lt;p&gt;Most or all of these `throw()` occurrences are for backward compatibility with pre-C&amp;#43;&amp;#43;11 builds and protected by ifdefs.&lt;br/&gt;
We&apos;re interested in making sure that a C&amp;#43;&amp;#43;17 or C&amp;#43;&amp;#43;20 build is not tolerating them when they&apos;re not really part of the language anymore.&lt;/p&gt;


&lt;p&gt;Regarding the suggestion about weak references: This is a language feature (called an &quot;exception specification&quot;), not a function call. It&apos;s not something that a library trick can fix.&lt;/p&gt;</comment>
                            <comment id="4846601" author="JIRAUSER1253549" created="Wed, 21 Sep 2022 20:56:20 +0000"  >&lt;p&gt;well need to track these in the forks, so updates are easier.&lt;/p&gt;

&lt;p&gt;Alternatively could we using some kind of weak symbol reference to overwrite the symbol at link time?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="893480">SERVER-42810</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>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 21 Sep 2022 20:56:20 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 15 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>iryna.zhuravlova@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 15 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>billy.donahue@mongodb.com</customfieldvalue>
            <customfieldvalue>celina.tala@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1ba6v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0tzcg:</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_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|i1awc7:</customfieldvalue>

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