<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:04:33 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-66126] Clear Future/ExecutorFuture continuations as they run</title>
                <link>https://jira.mongodb.org/browse/SERVER-66126</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It has been reported to the Service Architecture team that destructor ordering of continuation chains is not well-understood among server developers. This has come up in Slack and issues have been logged:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-53538&quot; title=&quot;Clarify semantics of when destructor runs for ExecutorFuture chains&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-53538&quot;&gt;&lt;del&gt;SERVER-53538&lt;/del&gt;&lt;/a&gt; - Clarify semantics of when destructor runs for ExecutorFuture chains&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-54119&quot; title=&quot;Destroy SharedStateBase as we unfold continuations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-54119&quot;&gt;&lt;del&gt;SERVER-54119&lt;/del&gt;&lt;/a&gt; - Destroy SharedStateBase as we unfold continuations&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-52942&quot; title=&quot;Evaluate whether we could change the destruction order of the closure in the ExecutorFuture class&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-52942&quot;&gt;&lt;del&gt;SERVER-52942&lt;/del&gt;&lt;/a&gt; - Evaluate whether we could change the destruction order of the closure in the ExecutorFuture class&lt;/p&gt;

&lt;p&gt;After some investigation, we&#8217;ve determined that the semantics around when continuation lambdas get destroyed are difficult to predict. This is mainly because the current implementation does not explicitly define a point at which the user-provided function is no longer held. Our current understanding is represented by the matrix below. It represents the known combinations of conditions that can impact the way that continuation functions run, and hence the multiple code paths that can lead to different destructor orderings:&lt;/p&gt;

&lt;p&gt;This issue encompasses the entirety of the work involved in moving to guaranteed destructor semantics.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Implement both behaviors using a template argument in the implementation details. (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66128&quot; title=&quot;Implement guaranteed continuation destructor ordering&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66128&quot;&gt;SERVER-66128&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Write up a doc explaining destructor semantics and provide direction to Server contributors for upcoming work. (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66129&quot; title=&quot;Provide directions to clean up LegacyDestructorOrderingTags.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66129&quot;&gt;SERVER-66129&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Uglify all code to employ a LegacyDestructorOrdering tag on all continuations, and delegate some Jira tickets. (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66127&quot; title=&quot;Introduce the LegacyDestructorOrderingTag on all existing continuation functions and log bugs to remove the tags&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66127&quot;&gt;SERVER-66127&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Wait for teams to address issues. (bugs pending)&lt;/li&gt;
	&lt;li&gt;Remove tags and remove the legacy delete ordering semantics. (this &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-66126&quot; title=&quot;Clear Future/ExecutorFuture continuations as they run&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-66126&quot;&gt;SERVER-66126&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This task can be closed with the completion of step 5.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2037801">SERVER-66126</key>
            <summary>Clear Future/ExecutorFuture continuations as they run</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="1" iconUrl="https://jira.mongodb.org/images/icons/statuses/open.png" description="">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-servicearch">Backlog - Service Architecture</assignee>
                                    <reporter username="matt.diener@mongodb.com">Matt Diener</reporter>
                        <labels>
                            <label>techdebt</label>
                    </labels>
                <created>Mon, 2 May 2022 19:06:10 +0000</created>
                <updated>Wed, 20 Dec 2023 16:20:08 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2037820">SERVER-66127</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2037826">SERVER-66128</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2037828">SERVER-66129</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="2040404">SERVER-66243</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1603639">SERVER-54119</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1545887">SERVER-52942</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1578320">SERVER-53538</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>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25132"><![CDATA[Service Arch]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 40 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<a href='https://jira.mongodb.org/browse/SERVER-66127'>SERVER-66127</a>, <a href='https://jira.mongodb.org/browse/SERVER-66128'>SERVER-66128</a>, <a href='https://jira.mongodb.org/browse/SERVER-66129'>SERVER-66129</a>]]></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_10553" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Flagged</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10442"><![CDATA[Impediment]]></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>jason.chan@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 40 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-servicearch</customfieldvalue>
            <customfieldvalue>matt.diener@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0td2f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr1lyw:i</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="6137">Service Arch 2022-05-16</customfieldvalue>
    <customfieldvalue id="6263">Service Arch 2022-05-30</customfieldvalue>
    <customfieldvalue id="6267">Service Arch 2022-06-13</customfieldvalue>
    <customfieldvalue id="6283">Service Arch 2022-06-27</customfieldvalue>
    <customfieldvalue id="6303">Service Arch 2022-07-11</customfieldvalue>

                        </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|i0sz7r:</customfieldvalue>

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