<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:25:23 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>[DRIVERS-2363] Catch all Astrolabe setup exceptions and mark them as setup failures instead of task failures</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2363</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;Some exceptions that can happen during Astrolabe setup are not recognized as part of setup and are registered as task failures instead of setup failures. Update Astrolabe exception handling to catch &lt;em&gt;all&lt;/em&gt; exceptions that can happen during setup and defer handling those errors to the &quot;check-cloud-failure&quot; command that runs after the main test run.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;DetailedDescription&quot;&gt;&lt;/a&gt;Detailed Description&lt;/h4&gt;
&lt;p&gt;The Atlas cluster setup happens during the &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/.evergreen/config.yml#L98-L115&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;run-one command&lt;/a&gt;, which is configured as type &quot;test&quot; in the Evergreen config (displays as &quot;test failure&quot;). It seems like we really want to check for cloud failure in the &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/.evergreen/config.yml#L116-L122&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;check-cloud-failure command&lt;/a&gt;, which is configured as type &quot;setup&quot; in the Evergreen config (displays as &quot;setup failure&quot;). Deferring cloud setup failure checking depends on &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/astrolabe/runner.py#L475-L483&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this try/except block&lt;/a&gt; in the runner, which expects a very specific set of exception types and error messages. However, some of those HTTP timeout exceptions are thrown from HTTP calls in &lt;tt&gt;_&lt;em&gt;init&lt;/em&gt;_&lt;/tt&gt; functions (e.g. &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/astrolabe/runner.py#L424-L425&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;) and aren&apos;t caught by the try/except block.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/astrolabe/runner.py#L475-L483&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;exception handling block&lt;/a&gt; that attempts to defer errors caused by cloud setup to a following &quot;setup&quot;-type Evergreen command doesn&apos;t handle a lot of possible setup exceptions. We need to refactor the exception handling logic to catch all exceptions that can happen during initialization and cluster setup (e.g. by moving the try/except block to where the runner is initialized and called &lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/blob/8b3ace4521c5ca9b589412d5ecfb471113e83565/astrolabe/cli.py#L447-L458&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;).&lt;br/&gt;
&#160;&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;

&lt;p&gt;People supporting Astrolabe. Possibly driver devs who are erroneously notified about drivers failures.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;

&lt;p&gt;An Astrolabe build will fail with a task failure instead of a setup failure.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;

&lt;p&gt;Reasonably likely, especially if deployments to the &quot;Cloud QA&quot; Atlas environment are happening during an Astrolabe run.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;

&lt;p&gt;It is confusing to someone trying to debug the Astrolabe build failure.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;

&lt;p&gt;No.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;

&lt;p&gt;No.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;

&lt;p&gt;Yes.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2071746">DRIVERS-2363</key>
            <summary>Catch all Astrolabe setup exceptions and mark them as setup failures instead of task failures</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="matt.dale@mongodb.com">Matt Dale</assignee>
                                    <reporter username="matt.dale@mongodb.com">Matt Dale</reporter>
                        <labels>
                    </labels>
                <created>Fri, 17 Jun 2022 18:14:20 +0000</created>
                <updated>Sat, 28 Oct 2023 10:44:42 +0000</updated>
                            <resolved>Thu, 8 Sep 2022 16:59:26 +0000</resolved>
                                                        <component>Astrolabe</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="4812330" author="xgen-internal-githook" created="Thu, 8 Sep 2022 16:58:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Matt Dale&apos;, &apos;email&apos;: &apos;9760375+matthewdale@users.noreply.github.com&apos;, &apos;username&apos;: &apos;matthewdale&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2363&quot; title=&quot;Catch all Astrolabe setup exceptions and mark them as setup failures instead of task failures&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2363&quot;&gt;&lt;del&gt;DRIVERS-2363&lt;/del&gt;&lt;/a&gt; Mark all Atlas test setup exceptions as &apos;cloud-failure&apos;. (#148)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb-labs/drivers-atlas-testing/commit/ff1f2fb495b8224eeaa57245320ddcc07bcd0e8a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-labs/drivers-atlas-testing/commit/ff1f2fb495b8224eeaa57245320ddcc07bcd0e8a&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_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10940"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0hzyg:</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>