<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:00:45 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-3911] Race condition on server description access</title>
                <link>https://jira.mongodb.org/browse/JAVA-3911</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Testing has uncovered a race condition, mostly affecting retryable reads and writes, in which the ServerDescription in DefaultServer does not reflect the current state of the ClusterDescription.  This server description is used to make decisions on whether to retry the operation, and as a result can make the wrong decision.  &lt;/p&gt;

&lt;p&gt;Specifically, the ServerDescription is in the CONNECTING state even after a successful selection of that server.  There are a couple of ways we might fix it:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Find and fix the race condition&lt;/li&gt;
	&lt;li&gt;Make all decisions based on the ConnectionDescription.  Stop tracking ServerDescription independently in DefaultServer&lt;/li&gt;
	&lt;li&gt;Cache the ServerDescription from the ClusterDescription at the time the server was selected&lt;/li&gt;
&lt;/ol&gt;

</description>
                <environment></environment>
        <key id="1570223">JAVA-3911</key>
            <summary>Race condition on server description access</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="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                            <label>planned-maintenance-detectable-bug</label>
                    </labels>
                <created>Wed, 16 Dec 2020 13:48:32 +0000</created>
                <updated>Sat, 28 Oct 2023 11:21:31 +0000</updated>
                            <resolved>Wed, 6 Jan 2021 14:06:06 +0000</resolved>
                                                    <fixVersion>4.2.0</fixVersion>
                                    <component>Cluster Management</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="3550397" author="xgen-internal-githook" created="Wed, 6 Jan 2021 14:05:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;jyemin&apos;, &apos;email&apos;: &apos;jeff.yemin@mongodb.com&apos;, &apos;username&apos;: &apos;jyemin&apos;}
&lt;p&gt;Message: Fix race condition accessing ServerDescription&lt;/p&gt;

&lt;p&gt;Further reduce the possibility of introducing a race&lt;br/&gt;
by removing the Server#getDescription method&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-3911&quot; title=&quot;Race condition on server description access&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-3911&quot;&gt;&lt;del&gt;JAVA-3911&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/8d78ec955d39a2e1295960a35d4b14b74cc34fdb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/8d78ec955d39a2e1295960a35d4b14b74cc34fdb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3550396" author="xgen-internal-githook" created="Wed, 6 Jan 2021 14:05:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jeff Yemin&apos;, &apos;email&apos;: &apos;jeff.yemin@mongodb.com&apos;, &apos;username&apos;: &apos;jyemin&apos;}
&lt;p&gt;Message: Fix race condition accessing ServerDescription&lt;/p&gt;

&lt;p&gt;This change guarantees that any operation accessing the ServerDescription&lt;br/&gt;
via ConnectionSource will see a Server Description that is valid&lt;br/&gt;
(i.e consistent with the state of the server when it was selected), though&lt;br/&gt;
perhaps stale, depending on how long the ConnectionSource is retained.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-3911&quot; title=&quot;Race condition on server description access&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-3911&quot;&gt;&lt;del&gt;JAVA-3911&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/115244234cf9682bca571b06093c37b82d67f50c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/115244234cf9682bca571b06093c37b82d67f50c&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|hy7zdj:</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>