<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:51:59 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>[JAVA-315] several exception cases do not put back the dbport in pool, resulting in forever hanging pool to that server</title>
                <link>https://jira.mongodb.org/browse/JAVA-315</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;we are not properly having port.done() in a finally close.&lt;br/&gt;
There are at least 2 spots where port is not properly put back in pool.&lt;/p&gt;

&lt;p&gt;One spot is pretty obvious:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;in DBTCPConnector.call(), if there is any ioexception during call, then _error() is called&lt;/li&gt;
	&lt;li&gt;in _error(), does a checkMaster(), which will throw an exception if there is no new master&lt;/li&gt;
	&lt;li&gt;due to this exception, the following mp.error() is not called, so port is not put back in pool.&lt;br/&gt;
Consequently if you have a replset, and master dies but it takes some time to elect new master, any find operation will take away a port from pool.&lt;br/&gt;
You just need 10 find calls to make pool unusable for that server, until the application is restarted.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Other spot: &lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;in DBTCPConnector.say(), in case that there is a writeconcern, getlasterror() is called&lt;/li&gt;
	&lt;li&gt;if there is ioexception in getlasterror, it is converted into mongoexception&lt;/li&gt;
	&lt;li&gt;the catch block of mongoexception does not put port back in pool.&lt;br/&gt;
Consequently if you have any ioexception in during the getlasterror call, the port will get lost.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="15416">JAVA-315</key>
            <summary>several exception cases do not put back the dbport in pool, resulting in forever hanging pool to that server</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="9">Done</resolution>
                                        <assignee username="antoine">Antoine Girbal</assignee>
                                    <reporter username="antoine">Antoine Girbal</reporter>
                        <labels>
                    </labels>
                <created>Thu, 31 Mar 2011 22:20:10 +0000</created>
                <updated>Fri, 8 Apr 2011 17:47:14 +0000</updated>
                            <resolved>Wed, 6 Apr 2011 21:07:15 +0000</resolved>
                                                    <fixVersion>2.5.3</fixVersion>
                                                        <votes>1</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="27495" author="auto" created="Thu, 31 Mar 2011 22:48:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;agirbal&apos;, u&apos;name&apos;: u&apos;agirbal&apos;, u&apos;email&apos;: u&apos;antoine@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-315&quot; title=&quot;several exception cases do not put back the dbport in pool, resulting in forever hanging pool to that server&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-315&quot;&gt;&lt;del&gt;JAVA-315&lt;/del&gt;&lt;/a&gt;: several exception cases do not put back the dbport in pool, resulting in forever hanging pool to that server&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-316&quot; title=&quot;in DBTCPConnector.say(), possible race condition that affects getLastError() result&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-316&quot;&gt;&lt;del&gt;JAVA-316&lt;/del&gt;&lt;/a&gt;: in DBTCPConnector.say(), possible race condition that affects getLastError() result&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/143dce3ecbfdcd644de8b129d9db8c275c99017e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/143dce3ecbfdcd644de8b129d9db8c275c99017e&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </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|hrhcb3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14794</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>