<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:36:52 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-1662] Respect context cancellation once an operation has been dispatched</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-1662</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;Because the &lt;tt&gt;net.Conn.Read&lt;/tt&gt; and &lt;tt&gt;net.Conn.Write&lt;/tt&gt; functions don&apos;t take a context, the driver doesn&apos;t respect context cancellation once an operation has been dispatched to the server. This creates confusing semantics for users who expect blocking work to stop on context cancellation. Some ideas/thoughts I&apos;ve had about this:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;We can spin up a separate goroutine in ReadWireMessage/WriteWireMessage to listen for &lt;tt&gt;ctx.Done&lt;/tt&gt; and close the connection or set it&apos;s read/write deadline to a previous time. We&apos;ll need to ensure we return &lt;tt&gt;context.Cancelled&lt;/tt&gt; rather than the &lt;tt&gt;net.Error&lt;/tt&gt; from the read/write call so the server pool isn&apos;t unnecessarily cleared.&lt;/li&gt;
	&lt;li&gt;The first suggestion can cause connection churn. If users are using context cancellation to signal some sort of shutdown, this is probably fine. If it&apos;s being used to implement things like application-level hedging, unnecessarily invalidating connections could cause issues. The only idea I have for doing is cleanly is to send an out of band killOp command, but this requires checking out another connection from the pool (or making a dedicated one?) and also first running currOp to get the operation ID. This might not be acceptable because we&apos;d be doing two blocking round trips after the context has been cancelled.&lt;/li&gt;
	&lt;li&gt;Killing the session associated with the op works too and is only one roundtrip, but I&apos;ve been told that it&apos;s a relatively expensive operation because sessions have a lot of server-side state (e.g. retryable writes, transactions, etc).&#160;&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="1385865">GODRIVER-1662</key>
            <summary>Respect context cancellation once an operation has been dispatched</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="divjot.arora@mongodb.com">Divjot Arora</assignee>
                                    <reporter username="divjot.arora@mongodb.com">Divjot Arora</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Jun 2020 15:41:58 +0000</created>
                <updated>Sat, 28 Oct 2023 11:38:08 +0000</updated>
                            <resolved>Thu, 13 Aug 2020 19:52:32 +0000</resolved>
                                                    <fixVersion>1.5.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3338233" author="xgen-internal-githook" created="Thu, 13 Aug 2020 19:52:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Divjot Arora&apos;, &apos;email&apos;: &apos;divjot.arora@10gen.com&apos;, &apos;username&apos;: &apos;divjotarora&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-1662&quot; title=&quot;Respect context cancellation once an operation has been dispatched&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-1662&quot;&gt;&lt;del&gt;GODRIVER-1662&lt;/del&gt;&lt;/a&gt; Respect context.Cancellation for network operations (#473)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/96efc632cadffc55ba0fd8d046a1ad9fb1130a21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/96efc632cadffc55ba0fd8d046a1ad9fb1130a21&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3316543" author="divjot.arora" created="Fri, 31 Jul 2020 21:39:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/pull/473&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/pull/473&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                        </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|hxduin:</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>