<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:10 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-1861] [FLE] Clarify spawning and connecting to mongocryptd</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1861</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;The client side encryption spec is not clear on some points about spawning and connecting to mongocryptd.&lt;/p&gt;

&lt;p&gt;1. What should happen if there is an error spawning mongocryptd? The Java driver &lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/blob/653de0e4dbb3a60cf53a24935aa2f20aabab4164/driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java#L113&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;currently throws an exception&lt;/a&gt;, but the spec does not mandate anything. &lt;span class=&quot;error&quot;&gt;&amp;#91;if process API has a way to report errors, then it can be reported (e.g. the path to mongocryptd does not exist).  However a non-zero exit status because pid file already exists should _not_ raise an exception, because that&amp;#39;s normal (e.g. multiple MongoClient on same server&amp;#93;&lt;/span&gt;&lt;br/&gt;
 2. Should the driver wait after spawning before attempting to connect?  &lt;span class=&quot;error&quot;&gt;&amp;#91;No, we use server selection timeout for that&amp;#93;&lt;/span&gt;&lt;br/&gt;
 3. Should the driver attempt to read the PID file, and should that PID file be in a known system location?  &lt;span class=&quot;error&quot;&gt;&amp;#91;Possibly, see SPEC-1388&amp;#93;&lt;/span&gt;&lt;br/&gt;
 4. If the user passes &lt;tt&gt;extraOptions.mongocryptdURI&lt;/tt&gt; should the driver parse the URI for the port to spawn on, pass that port to the mongocryptd being spawned?  &lt;span class=&quot;error&quot;&gt;&amp;#91;No.  App would have to also turn off auto spawning to achieve this effect&amp;#93;&lt;/span&gt;&lt;br/&gt;
 5. Should the spawned &lt;tt&gt;mongocryptd&lt;/tt&gt; child process be detached from the parent? Does the child need to be able to stay running after the parent closes? Does the child need to be kicked off into its own process group / session?  &lt;span class=&quot;error&quot;&gt;&amp;#91;Yes, though not sure what that means at an API level for each language.  e.g. Java has no &amp;quot;detach&amp;quot; capability.  It just happens&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;del&gt;6. &lt;tt&gt;mongocryptd&lt;/tt&gt; supports both &lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;--idleShutdownTimeoutSecs=60&amp;#93;&lt;/span&gt;&lt;/tt&gt; and &lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;&#8211;idleShutdownTimeoutSecs, 60&amp;#93;&lt;/span&gt;&lt;/tt&gt; as startup arguments. The &quot;Managing mongocryptd&quot; section should be updated to clarify that drivers should check for both formats when determining whether a timeout needs to be appended.  &lt;span class=&quot;error&quot;&gt;&amp;#91;Addressed&amp;#93;&lt;/span&gt;&lt;/del&gt;&lt;br/&gt;
7. The sentence &quot;If spawning is necessary, the driver MUST spawn mongocryptd whenever server selection on the MongoClient to mongocryptd fails. If the MongoClient fails to connect after spawning, the server selection error is propagated to the user.&quot;  indicates that we only spawn on first use. This should be amended (perhaps with a sentence before) to indicate we spawn mongocryptd in MongoClient constructor.&lt;br/&gt;
8. There are reports of mongocryptd messages being logged on self-termination which misleadingly indicates an error even though connection succeeds for pymongo. Perhaps we should specify that mongocryptd log messages be hidden, buffered and only shown on error, redirected to a log file by default, etc.&lt;/p&gt;</description>
                <environment></environment>
        <key id="878254">DRIVERS-1861</key>
            <summary>[FLE] Clarify spawning and connecting to mongocryptd</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</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>
                    </labels>
                <created>Mon, 29 Jul 2019 15:19:28 +0000</created>
                <updated>Thu, 31 Mar 2022 14:08:44 +0000</updated>
                                                                <component>Client Side Encryption</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2472032" author="asya" created="Tue, 8 Oct 2019 17:35:13 +0000"  >&lt;p&gt;Related to 8. SPEC-1469&lt;/p&gt;</comment>
                            <comment id="2365989" author="kevin.albertson" created="Sun, 11 Aug 2019 19:45:27 +0000"  >&lt;p&gt;Also considering &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41826&quot; title=&quot;avoid unlinking the unix domain socket if another process is listening&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41826&quot;&gt;SERVER-41826&lt;/a&gt;, consider only connecting over TCP until that is fixed.&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>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="926695">DRIVERS-1860</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="880114">DRIVERS-2113</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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6nfz:</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>