<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:23:37 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-50804] Make external (application) client info available for commands on shards and config servers</title>
                <link>https://jira.mongodb.org/browse/SERVER-50804</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The rpc from mongoS already passes both the internal (mongoS) client info and the external client (application) info into the shards and config servers, the info being host:port and client metadata. However only the mongoS client info is exposed in the Client class. For diagnostics and logging purposes, it would be useful to expose the external client info too.&lt;/p&gt;

&lt;p&gt;From a conversation with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ben.caimano&quot; class=&quot;user-hover&quot; rel=&quot;ben.caimano&quot;&gt;ben.caimano&lt;/a&gt;: we encode external client information &lt;a href=&quot;https://github.com/mongodb/mongo/blob/f265019ab76d4a73e19e3300b9e52bc927cc6bbe/src/mongo/rpc/metadata/client_metadata.cpp#L298-L330&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. However that is only used in the mongoS hello implementation &lt;a href=&quot;https://github.com/mongodb/mongo/blob/f265019ab76d4a73e19e3300b9e52bc927cc6bbe/src/mongo/s/commands/cluster_is_master_cmd.cpp#L130-L133&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. I don&apos;t actually see anywhere where it is parsed on the client side. In theory, we could attach this information when it is first seen like we do with other metadata. Then all commands after that hello could access it.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1466366">SERVER-50804</key>
            <summary>Make external (application) client info available for commands on shards and config servers</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="3">Duplicate</resolution>
                                        <assignee username="shameek.ray@mongodb.com">Shameek Ray</assignee>
                                    <reporter username="josef.ahmad@mongodb.com">Josef Ahmad</reporter>
                        <labels>
                            <label>sa-groomed</label>
                    </labels>
                <created>Tue, 8 Sep 2020 21:05:19 +0000</created>
                <updated>Mon, 10 May 2021 14:43:36 +0000</updated>
                            <resolved>Tue, 20 Oct 2020 17:21:20 +0000</resolved>
                                                                    <component>Diagnostics</component>
                    <component>Networking</component>
                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3454638" author="ben.caimano" created="Tue, 20 Oct 2020 17:32:50 +0000"  >&lt;p&gt;We&apos;ve closed this as duplicate, please reopen if &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-49336&quot; title=&quot;Set client metadata if it is missing during failCommand&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-49336&quot;&gt;&lt;del&gt;SERVER-49336&lt;/del&gt;&lt;/a&gt; doesn&apos;t address your needs.&lt;/p&gt;</comment>
                            <comment id="3447023" author="ben.caimano" created="Thu, 15 Oct 2020 18:11:13 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=josef.ahmad&quot; class=&quot;user-hover&quot; rel=&quot;josef.ahmad&quot;&gt;josef.ahmad&lt;/a&gt;, I ran into this again in the course of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-49336&quot; title=&quot;Set client metadata if it is missing during failCommand&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-49336&quot;&gt;&lt;del&gt;SERVER-49336&lt;/del&gt;&lt;/a&gt;. It turns out that we were actually overwriting the internal client (mongos) &lt;tt&gt;ClientMetadata&lt;/tt&gt; with the external client (mongo/driver) &lt;tt&gt;ClientMetadata&lt;/tt&gt; on each operation. We now have both available simultaneously as &lt;tt&gt;ClientMetadata::getForClient(opCtx)&lt;/tt&gt; and &lt;tt&gt;ClientMetadata::getForOperation(opCtx)&lt;/tt&gt;. Do you feel that change addresses this ticket?&lt;/p&gt;</comment>
                            <comment id="3446695" author="xgen-internal-githook" created="Thu, 15 Oct 2020 17:21:19 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ben Caimano&apos;, &apos;email&apos;: &apos;ben.caimano@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-49336&quot; title=&quot;Set client metadata if it is missing during failCommand&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-49336&quot;&gt;&lt;del&gt;SERVER-49336&lt;/del&gt;&lt;/a&gt; Set ClientMetadata before CommandInvocations are run&lt;/p&gt;

&lt;p&gt;This patch does the following:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Always parses ClientMetadata before command implementations are run.&lt;/li&gt;
	&lt;li&gt;Marks general ClientMetadata as final in the first hello.&lt;/li&gt;
	&lt;li&gt;Removes client_metadata_ismaster.* (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50517&quot; title=&quot;Rename ClientMetadataIsMasterState to ClientMetadataHelloState&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50517&quot;&gt;&lt;del&gt;SERVER-50517&lt;/del&gt;&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Switches references to &quot;isMaster&quot; to &quot;hello&quot; (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50517&quot; title=&quot;Rename ClientMetadataIsMasterState to ClientMetadataHelloState&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50517&quot;&gt;&lt;del&gt;SERVER-50517&lt;/del&gt;&lt;/a&gt;)&lt;/li&gt;
	&lt;li&gt;Binds &quot;$client&quot; metadata as a decoration (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50804&quot; title=&quot;Make external (application) client info available for commands on shards and config servers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50804&quot;&gt;&lt;del&gt;SERVER-50804&lt;/del&gt;&lt;/a&gt;)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5a9d2dd204f41b4a02fe83d710f3f38c6092b322&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5a9d2dd204f41b4a02fe83d710f3f38c6092b322&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="3398727" author="josef.ahmad" created="Thu, 17 Sep 2020 08:13:04 +0000"  >&lt;p&gt;This improvement facilitates the root cause analysis of incidents in the field involving sharded clusters. Namely, this ticket would allow to identify the application client that requested an &lt;em&gt;offending&lt;/em&gt; command on a shard.&lt;/p&gt;

&lt;p&gt;On replica set deployments, we can already identify the application client behind an an operation of interest. On sharded clusters instead, a shard only knows about their direct client (mongoS most of the time). This makes it not trivial to pinpoint the application client behind an operation of interest.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50543&quot; title=&quot;Log the application client starting or stopping the balancer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50543&quot;&gt;&lt;del&gt;SERVER-50543&lt;/del&gt;&lt;/a&gt; is an example where this ticket would have been helpful. We&apos;ve ended up working around the lack of this ticket by logging the application client metadata in the mongoS, which essentially adds a layer of indirection in the analysis (config server analysis -&amp;gt; mongoS analysis).&lt;/p&gt;

&lt;p&gt;Note that today we already pass the application client info into the shard as part of the remote procedure call, so as far as I understand it, it&apos;s only a matter of making this info available in our internal API.&lt;/p&gt;</comment>
                            <comment id="3395037" author="shameek.ray" created="Tue, 15 Sep 2020 17:28:17 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=josef.ahmad&quot; class=&quot;user-hover&quot; rel=&quot;josef.ahmad&quot;&gt;josef.ahmad&lt;/a&gt;, Is this something you still need? If so, what will it help you do?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="1402983">SERVER-49336</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1452779">SERVER-50543</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1402983">SERVER-49336</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>5.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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 15 Sep 2020 17:28:17 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 16 weeks, 1 day 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>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>jesse@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 16 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>ben.caimano@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>josef.ahmad@mongodb.com</customfieldvalue>
            <customfieldvalue>shameek.ray@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hy4ikf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr5633:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4267">Service arch 2020-09-21</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|hy44tr:</customfieldvalue>

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