<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:20:34 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>[SERVER-29341] Set TCP_KEEPIDLE and TCP_KEEPINTVL (or OS equivalent) whenever available</title>
                <link>https://jira.mongodb.org/browse/SERVER-29341</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The server currently enables SO_KEEPALIVE on sockets whenever it is defined. On Linux it goes the extra mile and attempts to set a reasonable value for TCP_KEEPIDLE and TCP_KEEPINTVL (the default TCP_KEEPIDLE value on Linux - and keep-alive timeout on Windows - is a completely useless 7200 seconds).&lt;/p&gt;

&lt;p&gt;The server should attempt to set a reasonable value for TCP_KEEPIDLE and TCP_KEEPINTVL whenever they are defined, not just on Linux. It should also attempt to set the equivalent values on Windows using WSAIoctl.&lt;/p&gt;

&lt;p&gt;References:&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/src/mongo/util/net/sock.cpp#L153-L193&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/master/src/mongo/util/net/sock.cpp#L153-L193&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/#setsockopt&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/#setsockopt&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx&lt;/a&gt;&lt;/p&gt;
</description>
                <environment></environment>
        <key id="386283">SERVER-29341</key>
            <summary>Set TCP_KEEPIDLE and TCP_KEEPINTVL (or OS equivalent) whenever available</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="sara.golemon@mongodb.com">Sara Golemon</assignee>
                                    <reporter username="bernie@mongodb.com">Bernie Hackett</reporter>
                        <labels>
                            <label>neweng</label>
                    </labels>
                <created>Tue, 23 May 2017 22:20:21 +0000</created>
                <updated>Mon, 30 Oct 2023 23:16:35 +0000</updated>
                            <resolved>Fri, 1 Sep 2017 20:58:36 +0000</resolved>
                                                    <fixVersion>3.5.13</fixVersion>
                                    <component>Networking</component>
                                        <votes>0</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="1934331" author="xgen-internal-githook" created="Thu, 28 Jun 2018 21:21:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;sgolemon&apos;, &apos;name&apos;: &apos;Sara Golemon&apos;, &apos;email&apos;: &apos;sara.golemon@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29341&quot; title=&quot;Set TCP_KEEPIDLE and TCP_KEEPINTVL (or OS equivalent) whenever available&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29341&quot;&gt;&lt;del&gt;SERVER-29341&lt;/del&gt;&lt;/a&gt; Set KeepAlive params on windows and mac&lt;/p&gt;

&lt;p&gt;(cherry picked from commit bd153cba11ab82ffbf8d2bc0b801eb808369eb9e)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b5dcbd7a26a8452de61a79dc40e9c569e9344d24&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b5dcbd7a26a8452de61a79dc40e9c569e9344d24&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1663049" author="sara.golemon" created="Fri, 1 Sep 2017 20:58:36 +0000"  >&lt;p&gt;KeepAlive parameters are now updated on Windows and Mac according to the same rules as Linux.&lt;/p&gt;

&lt;p&gt;That is, if the current keepidle/keepintvl values are greater than 300 seconds, they are reduced to 300 seconds.  If they are shorter than 300s they are not modified.&lt;/p&gt;

&lt;p&gt;Note that while windows and linux have two distinct settings, mac uses a single setting.&lt;/p&gt;</comment>
                            <comment id="1663045" author="xgen-internal-githook" created="Fri, 1 Sep 2017 20:54:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;sgolemon&apos;, &apos;name&apos;: &apos;Sara Golemon&apos;, &apos;email&apos;: &apos;sara.golemon@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29341&quot; title=&quot;Set TCP_KEEPIDLE and TCP_KEEPINTVL (or OS equivalent) whenever available&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29341&quot;&gt;&lt;del&gt;SERVER-29341&lt;/del&gt;&lt;/a&gt; Set KeepAlive params on windows and mac&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bd153cba11ab82ffbf8d2bc0b801eb808369eb9e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bd153cba11ab82ffbf8d2bc0b801eb808369eb9e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1630513" author="shane.harvey" created="Mon, 24 Jul 2017 20:43:27 +0000"  >&lt;p&gt;The server&apos;s current behavior on Linux is to only set keep-alive times if the default value is greater than a threshold. On Windows, it may be more complicated to have the same behavior. &lt;/p&gt;

&lt;p&gt;It&apos;s simple to set the keep-alive times using WSAIoctl with SIO_KEEPALIVE_VALS but it does not seem possible to read the current SIO_KEEPALIVE_VALS on a socket; the WSAIoctl output buffer is not used according to &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the documentation&lt;/a&gt; and confirmed by testing locally.&lt;/p&gt;

&lt;p&gt;So I believe the only way to get the default keep-alive times are by reading the &lt;a href=&quot;https://technet.microsoft.com/en-us/library/cc957549.aspx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;KeepAliveTime&lt;/a&gt; and &lt;a href=&quot;https://technet.microsoft.com/en-us/library/cc957548.aspx&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;KeepAliveInterval&lt;/a&gt; registry entries.&lt;/p&gt;</comment>
                            <comment id="1581105" author="behackett" created="Fri, 26 May 2017 18:25:59 +0000"  >&lt;p&gt;The argument here isn&apos;t to configure more tcp options, but to apply the values we already configure on a wider array of operating systems.&lt;/p&gt;</comment>
                            <comment id="1581088" author="jason.carey" created="Fri, 26 May 2017 18:17:55 +0000"  >&lt;p&gt;It&apos;s not clear to me if we want to do this.  We&apos;ve made a conscious choice in the past to do application level heartbeating wherever feasible, partially because relying more strongly on tcp keep alives may make alternate transports more difficult to reason about.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=acm&quot; class=&quot;user-hover&quot; rel=&quot;acm&quot;&gt;acm&lt;/a&gt;, what are your thoughts?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="384910">DRIVERS-383</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="386578">SERVER-29359</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 26 May 2017 18:17:55 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 32 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 32 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bernie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>mira.carey@mongodb.com</customfieldvalue>
            <customfieldvalue>sara.golemon@mongodb.com</customfieldvalue>
            <customfieldvalue>shane.harvey@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht7w87:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hra0mn:</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>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1877">Platforms 2017-09-11</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht7ian:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>