<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18: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>[CDRIVER-3730] Do not interpret URI option values of 0 as unset</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3730</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;While working on &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3721&quot; title=&quot;Define behavior of connectTimeoutMS=0 with streaming protocol&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3721&quot;&gt;CDRIVER-3721&lt;/a&gt;, I discovered libmongoc interprets connecttimeoutms=0 to mean the option is unset and actually defaults to 10000. So there is no current way to set an unlimited connection timeout. This contradicts the URI options spec, but libmongoc&apos;s source comment above &lt;tt&gt;mongoc_uri_get_option_as_int32&lt;/tt&gt; indicates it&apos;s intentional.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; *       Checks if the URI &apos;option&apos; is set and of correct type (int32).&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; *       The special value &apos;0&apos; is considered as &quot;unset&quot;.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; *       This is so users can provide&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; *       sprintf(&quot;mongodb://localhost/?option=%d&quot;, myvalue) style connection&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;This has happened for other options as well, and required separate getters.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2056&quot; title=&quot;mongoc_uri_get_option_as_int32() does not allow a localThresholdMS of zero&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2056&quot;&gt;&lt;del&gt;CDRIVER-2056&lt;/del&gt;&lt;/a&gt; introduced &lt;tt&gt;mongoc_uri_get_local_threshold_option&lt;/tt&gt; to return 0 if specified.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1933&quot; title=&quot;Make minimum value of maxStalenessSeconds 90 seconds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1933&quot;&gt;&lt;del&gt;CDRIVER-1933&lt;/del&gt;&lt;/a&gt; introduce the internal &lt;tt&gt;_mongoc_uri_get_max_staleness_option&lt;/tt&gt; to return 0 if specified.&lt;/p&gt;

&lt;p&gt;Including connecttimeoutms, these are the other integer options obtained (in non-test code) using the &lt;tt&gt;mongoc_uri_get_option_as_int*&lt;/tt&gt; helpers:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;connecttimeoutms&lt;/li&gt;
	&lt;li&gt;socketcheckintervalms&lt;/li&gt;
	&lt;li&gt;waitqueuetimeoutms&lt;/li&gt;
	&lt;li&gt;sockettimeoutms&lt;/li&gt;
	&lt;li&gt;socketcheckintervalms.&lt;/li&gt;
	&lt;li&gt;zlibcompressionlevel&lt;/li&gt;
	&lt;li&gt;heartbeatfrequencyms&lt;/li&gt;
	&lt;li&gt;serverselectiontimeoutms&lt;/li&gt;
	&lt;li&gt;wtimeoutms&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Cross referencing with the URI options spec, 0 can be meaningful for this subset of options:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;sockettimeoutms. 0 should mean &quot;no timeout&quot;.&lt;/li&gt;
	&lt;li&gt;connecttimeoutms. 0 should mean &quot;no timeout&quot;.&lt;/li&gt;
	&lt;li&gt;zlibcompressionlevel. 0 should mean to be no compression.&lt;/li&gt;
	&lt;li&gt;wtimeoutms. 0 should mean no timeout. This is ok, since the default is also 0.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In my opinion, libmongoc should always consider an explicit 0 value as being set to 0, not as unset. It would be a backwards breaking behavior change, but libmongoc already breaks the rationale given in &lt;tt&gt;mongoc_uri_get_option_as_int32&lt;/tt&gt; for maxstalenessseconds and localthresholdms. A URI with those options set to 0 is considered to have them set:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongodb://localhost/?maxStalenessSeconds=0&amp;amp;localThresholdMS=0&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</description>
                <environment></environment>
        <key id="1396206">CDRIVER-3730</key>
            <summary>Do not interpret URI option values of 0 as unset</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                            <label>rp-toSched</label>
                    </labels>
                <created>Tue, 30 Jun 2020 19:17:48 +0000</created>
                <updated>Mon, 21 Aug 2023 11:32:07 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1382149">CDRIVER-3721</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="354191">CDRIVER-2056</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="787573">CDRIVER-3167</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY24Q3</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6nan:</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>