<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:36:42 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-1581] Properly wrap and provide Unwrap implementations for error types</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-1581</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;Go 1.13 introduced a way to unwrap errors to get to the root error cause (see&#160;&lt;a href=&quot;https://blog.golang.org/go1.13-errors&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://blog.golang.org/go1.13-errors&lt;/a&gt;). We should add an &lt;tt&gt;Unwrap&lt;/tt&gt; method to all of our error types that wrap errors and also add a &lt;tt&gt;Wrapped&lt;/tt&gt; field to &lt;tt&gt;mongo.CommandError&lt;/tt&gt; as the operations layer reports network errors as a &lt;tt&gt;driver.Error&lt;/tt&gt; with the &lt;tt&gt;NetworkError&lt;/tt&gt; label. The &lt;tt&gt;driver.Error&lt;/tt&gt; type already has a &lt;tt&gt;wrapped&lt;/tt&gt; field so that can be directly copied in the &lt;tt&gt;replaceErrors&lt;/tt&gt; function.&lt;/p&gt;

&lt;p&gt;We should also change how we wrap certain errors. Specifically, when a context timeout is translated into a socket timeout, we should ensure the error returned to the user in the event of a timeout can be checked with &lt;tt&gt;errors.Is(err, context.DeadlineExceeded)&lt;/tt&gt;. This currently doesn&apos;t work because the user instead gets back whatever the &lt;tt&gt;net&lt;/tt&gt; library returns.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1316213">GODRIVER-1581</key>
            <summary>Properly wrap and provide Unwrap implementations for error types</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>Wed, 15 Apr 2020 17:47:07 +0000</created>
                <updated>Sat, 28 Oct 2023 11:38:13 +0000</updated>
                            <resolved>Wed, 24 Jun 2020 21:06:33 +0000</resolved>
                                                    <fixVersion>1.4.0</fixVersion>
                                    <component>Error Handling</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3222010" author="xgen-internal-githook" created="Wed, 24 Jun 2020 15:03:42 +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-1581&quot; title=&quot;Properly wrap and provide Unwrap implementations for error types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-1581&quot;&gt;&lt;del&gt;GODRIVER-1581&lt;/del&gt;&lt;/a&gt; Transform network errors into context.DeadlineExceeded (#430)&lt;/p&gt;

&lt;p&gt;If a context is translated to a network read/write deadline and the&lt;br/&gt;
read/write call returns a timeout error, this commit will swallow&lt;br/&gt;
that error and replace it with context.DeadlineExceeded so the&lt;br/&gt;
resulting error will return true for&lt;br/&gt;
errors.Is(err, context.DeadlineExceeded).&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/7d3355f224323a9c0e8769af8114380638a28599&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/7d3355f224323a9c0e8769af8114380638a28599&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3218604" author="divjot.arora" created="Mon, 22 Jun 2020 22:39:31 +0000"  >&lt;p&gt;Moving to &quot;in code review&quot; to address&#160;&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/pull/430&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/pull/430&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3070246" author="xgen-internal-githook" created="Tue, 5 May 2020 19:58:38 +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-1581&quot; title=&quot;Properly wrap and provide Unwrap implementations for error types&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-1581&quot;&gt;&lt;del&gt;GODRIVER-1581&lt;/del&gt;&lt;/a&gt; Implement Unwrap for all wrapping error types (#394)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/c335d0ce4c36997dc5a85083f163ecf4f1af3f48&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/c335d0ce4c36997dc5a85083f163ecf4f1af3f48&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3063646" author="divjot.arora" created="Thu, 30 Apr 2020 22:10:50 +0000"  >&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/pull/394&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/pull/394&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000mqkdJQAQ]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <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|hus213:</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>