<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:34:06 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>[GODRIVER-389] Race condition when disconnecting a connection pool</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-389</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;If a user calls pool.Disconnect while another goroutine is closing a Connection from that pool, a series of context switches may allow a connection to enter the idle pool after the Disconnect method has cleared the connections from the idle pool. This results in a deadlock wherein a user who used a context without a deadline or timeout will wait forever since we cannot acquire all the permits from the semaphore, nor can we retrieve the connection from the idle pool.&lt;/p&gt;

&lt;p&gt;To solve this problem, add a RWMutex that is used in pool.Disconnect and pool.returnConnection. Since it is possible for a Connection to block forever, this RWMutex should be released before calling pool.closeConnection. The pool.Disconnect method should acquire the mutex in write more before clearing the connection pool.&lt;/p&gt;</description>
                <environment></environment>
        <key id="535411">GODRIVER-389</key>
            <summary>Race condition when disconnecting a connection pool</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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="kris.brandow@mongodb.com">Kristofer Brandow</assignee>
                                    <reporter username="kris.brandow@mongodb.com">Kristofer Brandow</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 Apr 2018 20:46:06 +0000</created>
                <updated>Sat, 28 Oct 2023 11:39:37 +0000</updated>
                            <resolved>Sat, 28 Apr 2018 19:00:55 +0000</resolved>
                                    <version>0.0.3</version>
                                    <fixVersion>0.0.4</fixVersion>
                                    <component>Connections</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1877081" author="xgen-internal-githook" created="Sat, 28 Apr 2018 19:00:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kris@mongodb.com&apos;, &apos;username&apos;: &apos;skriptble&apos;, &apos;name&apos;: &apos;Kris Brandow&apos;}
&lt;p&gt;Message: Fix race conditions and leaks in connection pool&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-388&quot; title=&quot;Creating a new connection may leak a semaphore permit&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-388&quot;&gt;&lt;del&gt;GODRIVER-388&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-389&quot; title=&quot;Race condition when disconnecting a connection pool&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-389&quot;&gt;&lt;del&gt;GODRIVER-389&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-390&quot; title=&quot;Getting a connection from a pool can be starved indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-390&quot;&gt;&lt;del&gt;GODRIVER-390&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change-Id: I1390c184beb379d4cc775ba07b5d222342dc957e&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/98f5b78d43c7bf8cb246de3d102867ea26d3b49d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/98f5b78d43c7bf8cb246de3d102867ea26d3b49d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1876764" author="kris.brandow" created="Fri, 27 Apr 2018 22:10:19 +0000"  >&lt;p&gt;Code Review: &lt;a href=&quot;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/409354&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/409354&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                    <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|htnq53:</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>