<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:47:46 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-81926] resmoke Process::stop function should NOT wait for process to exit in windows</title>
                <link>https://jira.mongodb.org/browse/SERVER-81926</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Other parts of resmoke (such as ContinuousStepdown) &lt;a href=&quot;https://github.com/10gen/mongo/blob/45a2766619b2246b79e95649d1a60fb41c598262/buildscripts/resmokelib/testing/fixtures/replicaset.py#L631-L635&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;assume stopping a process does not wait for it to exit cleanly&lt;/a&gt;. In this particular case, this is to &lt;a href=&quot;https://github.com/10gen/mongo/blob/45a2766619b2246b79e95649d1a60fb41c598262/buildscripts/resmokelib/testing/hooks/stepdown.py#L324-L344&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;immediately&lt;/a&gt; step up a secondary after the old primary has been shutdown, so that availability is restored as fast as possible.&lt;/p&gt;

&lt;p&gt;This is already the case for the non-Windows implementation, but for some unknown reason for mongod, in TERMINATE mode in Windows, &lt;a href=&quot;https://github.com/10gen/mongo/blob/45a2766619b2246b79e95649d1a60fb41c598262/buildscripts/resmokelib/core/process.py#L195-L210&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;resmoke waits up to 60 seconds&lt;/a&gt;. This causes sporadic test failures due to a primary not being found.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2462396">SERVER-81926</key>
            <summary>resmoke Process::stop function should NOT wait for process to exit in windows</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="devprod-correctness-team@mongodb.com">[DO NOT ASSIGN] Backlog - DevProd Correctness</assignee>
                                    <reporter username="yujin.kang@mongodb.com">Yujin Kang Park</reporter>
                        <labels>
                            <label>FY2025Q1</label>
                            <label>resmoke</label>
                    </labels>
                <created>Fri, 6 Oct 2023 13:34:20 +0000</created>
                <updated>Thu, 11 Jan 2024 21:08:25 +0000</updated>
                                                                            <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="5760834" author="max.hirschhorn@10gen.com" created="Sat, 7 Oct 2023 00:04:34 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Modifying the windows logic to just set the event without waiting for it to complete may make it match the linux behavior better.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It is important for the mongod process to cleanly shut down on Windows to successfully bring up another mongod process with the same &amp;#45;&amp;#45;dbpath and contents. I would recommend moving the waiting from happening in resmokelib.core.process.Process.stop() to be in resmokelib.core.process.Process.wait() instead. This may be what you intended for matching the behavior on Linux systems but I wanted to clarify it all the same.&lt;/p&gt;</comment>
                            <comment id="5760572" author="JIRAUSER1274619" created="Fri, 6 Oct 2023 21:13:52 +0000"  >&lt;p&gt;It looks like the windows-specific logic here is to handle the difference in behavior between linux and windows when calling `process.terminate` in python: &lt;a href=&quot;https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.terminate&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Process.terminate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On linux it&apos;s a SIGTERM, which gives the process a chance to handle it: &lt;a href=&quot;https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html#index-SIGTERM&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html#index-SIGTERM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On windows it calls the TerminateProcess API which doesn&apos;t give the process any way to handle it: &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/win32/procthread/terminating-a-process&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://learn.microsoft.com/en-us/windows/win32/procthread/terminating-a-process&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The windows-specific logic here is setting an event that mongod is listening for. Once mongod handles it, it&apos;ll call &lt;a href=&quot;https://github.com/10gen/mongo/blob/SERVER-81852/src/mongo/util/signal_handlers.cpp#L158&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo/blob/SERVER-81852/src/mongo/util/signal_handlers.cpp#L158&lt;/a&gt; just as it does when receiving a SIGTERM on linux. Afterwards, it&apos;ll reset the event and resmoke will continue execution.&lt;/p&gt;

&lt;p&gt;I believe there is a difference here in that `process.terminate` in linux fires and forgets SIGTERM while we&apos;re waiting for the event to be received in windows. Modifying the windows logic to just set the event without waiting for it to complete may make it match the linux behavior better.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=max.hirschhorn%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;max.hirschhorn@mongodb.com&quot;&gt;max.hirschhorn@mongodb.com&lt;/a&gt; does this seem reasonable to you?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="305206">SERVER-25358</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>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="26418"><![CDATA[Correctness]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 6 Oct 2023 21:13:52 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        17 weeks, 5 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>iryna.zhuravlova@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            17 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>devprod-correctness-team@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>yujin.kang@mongodb.com</customfieldvalue>
            <customfieldvalue>zack.winter@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2u05z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2bwpo:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</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|i2tmbb:</customfieldvalue>

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