<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:46:48 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-3964] Consider the range of possible client exceptions that should be resumable</title>
                <link>https://jira.mongodb.org/browse/CSHARP-3964</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;The change stream&#160;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/change-streams/change-streams.rst#resumable-error&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;spec&lt;/a&gt; says that:&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;Any error encountered which is not a server error (e.g. a timeout error or network error)&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;should be resumable.&lt;/p&gt;

&lt;p&gt;Currently we add only particular&#160;&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/blob/40e8c7311d008a68c96e7af82ba59a451057b02a/src/MongoDB.Driver.Core/Core/Operations/RetryabilityHelper.cs#L47&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;exceptions &lt;/a&gt; to the list of resumable exceptions. We should consider making all exceptions that are inherited from MongoClientException resumable. It may require additional changes to exclude exceptions like &quot;MongoConfigurationException&quot; (that&apos;s clearly not resumable) from this logic. One of solution here might be adding a new field like IsRetryable=true on MongoClientException level that we will be able to override in children.&lt;/p&gt;

&lt;p&gt;Additionally, we should consider replacing some of .net exceptions that we throw in the code on new ones inherited from MongoClientException that in turns also will be resumable. For example, we throw ObjectDisposedException if we try to call any method from the disposed server, but the server can be disposed by cluster at any moment for example because replica set reconfiguration. And in this case if this disposed server was pinned by any logic for example a created cursor, the pinned server will throw ObjectDisposedException during usage that won&apos;t be resumable&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="1922733">CSHARP-3964</key>
            <summary>Consider the range of possible client exceptions that should be resumable</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="dmitry.lukyanov@mongodb.com">Dmitry Lukyanov</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Nov 2021 23:07:41 +0000</created>
                <updated>Mon, 27 Feb 2023 17:05:32 +0000</updated>
                                                                                                <votes>4</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5223180" author="james.kovacs" created="Wed, 22 Feb 2023 23:39:41 +0000"  >&lt;p&gt;Hi, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=sam.kovacic%40gogtp.com&quot; class=&quot;user-hover&quot; rel=&quot;sam.kovacic@gogtp.com&quot;&gt;sam.kovacic@gogtp.com&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;Thank you for reaching out to us about this issue. We will be considering possible improvements to this behaviour. It would be helpful for us if you could provide some additional details about your use case. You mentioned seeing these pool paused exceptions daily. Does this happen more frequently with certain operations? During times of heavy load? During maintenance (such as cluster size autoscaling on Atlas)? Any additional details that you can provide will assist us in helping to ensure that any changes improve the behaviour with your use case.&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;br/&gt;
James&lt;/p&gt;</comment>
                            <comment id="5208894" author="sam.kovacic@gogtp.com" created="Fri, 17 Feb 2023 20:31:28 +0000"  >&lt;p&gt;We regularly (daily) get the exception using the C# driver: &quot;the connection pool is in paused state for server...&quot;. Please fix ASAP!!!!&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                        <issuelink>
            <issuekey id="1922577">CSHARP-3963</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|hztb4n:</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>