<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:42:54 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>[CSHARP-2564] Cluster calls TrySetResult which might not return for a long time</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2564</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;UpdateClusterDescription in Cluster.cs calls TrySetResult on a TaskCompletionSource.&lt;/p&gt;

&lt;p&gt;There is an issue with how TrySetResult works. If there are already other tasks waiting for this result they will execute synchronously in the current thread which means that TrySetResult might not return for a long time depending on how many tasks start to run as a result. We require that TrySetResult return immediately so that we can continue and finish the process of updating the cluster state.&lt;/p&gt;

&lt;p&gt;In .NET Framework 4.6.1 we could use the RunContinuationsAsynchronously TaskCreationOptions to specify that TrySetResult should only schedule waiting tasks for asynchronous execution and not run them synchronously, so that TrySetResult returns as quickly as possible.&lt;/p&gt;

&lt;p&gt;Since we currently only require .NET Framework 4.5.2 a work around would be:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Task.Run(() =&amp;gt; oldDescriptionChangedTaskCompletionSource.TrySetResult(&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;));&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;so that TrySetResult itself is called asynchronously from a new Task.&lt;/p&gt;</description>
                <environment></environment>
        <key id="725577">CSHARP-2564</key>
            <summary>Cluster calls TrySetResult which might not return for a long time</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="13201">Fixed</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="robert@mongodb.com">Robert Stam</reporter>
                        <labels>
                    </labels>
                <created>Fri, 29 Mar 2019 14:20:53 +0000</created>
                <updated>Sat, 28 Oct 2023 11:48:47 +0000</updated>
                            <resolved>Sat, 6 Apr 2019 21:46:05 +0000</resolved>
                                    <version>2.8.0</version>
                                    <fixVersion>2.8.1</fixVersion>
                                    <component>Connectivity</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2204372" author="xgen-internal-githook" created="Sat, 6 Apr 2019 21:45:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;name&apos;: &apos;rstam&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-2564&quot; title=&quot;Cluster calls TrySetResult which might not return for a long time&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-2564&quot;&gt;&lt;del&gt;CSHARP-2564&lt;/del&gt;&lt;/a&gt;: Wrap call to TrySetResult in Task.Run.&lt;br/&gt;
Branch: v2.8.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/3a85356d7df7f3f87cbd1db18126ed8e37be3012&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/3a85356d7df7f3f87cbd1db18126ed8e37be3012&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2204369" author="xgen-internal-githook" created="Sat, 6 Apr 2019 21:38:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;name&apos;: &apos;rstam&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-2564&quot; title=&quot;Cluster calls TrySetResult which might not return for a long time&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-2564&quot;&gt;&lt;del&gt;CSHARP-2564&lt;/del&gt;&lt;/a&gt;: Wrap call to TrySetResult in Task.Run.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/4f8630f9effed03104080f8c1151057d5a195f46&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/4f8630f9effed03104080f8c1151057d5a195f46&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="728908">CSHARP-2573</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|huhv9z:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>