<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:45:50 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-37387] mongo_lock.py graph displays lock request type for LockManager locks</title>
                <link>https://jira.mongodb.org/browse/SERVER-37387</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Changes for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34738&quot; title=&quot;mongo_lock.py graph should display lock type for LockManager locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34738&quot;&gt;&lt;del&gt;SERVER-34738&lt;/del&gt;&lt;/a&gt; now display the lock requester&apos;s mode. We need to display the lock holder&apos;s mode as well.&lt;/p&gt;

&lt;p&gt;We should change the following&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;            print(&quot;MongoDB Lock at {} ({}) held by {} waited on by {}&quot;.format(&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;                lock_head, lock_request[&quot;mode&quot;], lock_holder, lock_waiter))&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;to&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;           # Code to set the lock_mode needs to be added&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;            print(&quot;MongoDB Lock at {} ({}) held by {} waited on by {} ({})&quot;.format(&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;                lock_head, lock_mode, lock_holder, lock_waiter, lock_request[&quot;mode&quot;]))&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;Other references to &lt;tt&gt;lock_request&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;mode&amp;quot;&amp;#93;&lt;/span&gt;&lt;/tt&gt; should be modified as well, such that the mode is properly associated to holder.&lt;/p&gt;</description>
                <environment></environment>
        <key id="611619">SERVER-37387</key>
            <summary>mongo_lock.py graph displays lock request type for LockManager locks</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="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="max.hirschhorn@mongodb.com">Max Hirschhorn</assignee>
                                    <reporter username="jonathan.abrahams">Jonathan Abrahams</reporter>
                        <labels>
                            <label>tig-hanganalyzer</label>
                    </labels>
                <created>Fri, 28 Sep 2018 19:19:28 +0000</created>
                <updated>Sun, 29 Oct 2023 22:27:48 +0000</updated>
                            <resolved>Wed, 10 Oct 2018 20:17:00 +0000</resolved>
                                                    <fixVersion>4.1.4</fixVersion>
                                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2029474" author="xgen-internal-githook" created="Wed, 10 Oct 2018 20:16:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Max Hirschhorn&apos;, &apos;email&apos;: &apos;max.hirschhorn@mongodb.com&apos;, &apos;username&apos;: &apos;visemet&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37387&quot; title=&quot;mongo_lock.py graph displays lock request type for LockManager locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37387&quot;&gt;&lt;del&gt;SERVER-37387&lt;/del&gt;&lt;/a&gt; Clarify how lock mode displayed refers to mode held.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e01cdb673978f6d3a9d53bb3a6ba35b34c281b0e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e01cdb673978f6d3a9d53bb3a6ba35b34c281b0e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2029115" author="esha.maharishi@10gen.com" created="Wed, 10 Oct 2018 15:38:37 +0000"  >&lt;blockquote&gt;&lt;p&gt;The&#160;&lt;tt&gt;mode&lt;/tt&gt;&#160;argument to the&#160;&lt;tt&gt;LockerImpl::lockComplete()&lt;/tt&gt;&#160;function that the waiter is blocked in would be the mode for the pending request. It tends to be optimized out in the&#160;&lt;tt&gt;LockerImpl::lockComplete()&lt;/tt&gt;&#160;frame that we&apos;d be unlikely to include it in the output anyway.&lt;/p&gt;

&lt;p&gt;As I mentioned in my comment above, information about the mode for the pending request would be challenging to try and get to appear in the waits-for graph because it tends to be optimized out of the frame we&apos;re examining. It is however usually recorded in an earlier stack frame or can be deduced from the C++ code in the stacktrace.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I see. My confusion came from BF-10750, where there is no mention of an X lock request in the waits-for graph, though&#160;the deadlock was a result of an enqueued (though not held) X lock. You are right though that in this case, the thread that has enqueued the X lock request will always appear in the stack traces.&lt;/p&gt;

&lt;p&gt;Maybe the &quot;legend&quot; at the top of the .gv file could be clarified?&lt;/p&gt;

&lt;p&gt;It currently says:&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;# Legend:&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;#    Thread 1 -&amp;gt; Lock 1 indicates Thread 1 is waiting on Lock 1&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;#    Lock 2 -&amp;gt; Thread 2 indicates Lock 2 is held by Thread 2&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;Here&apos;s an example of the two types of lines:&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;  &quot;&quot;conn419&quot; (Thread 0x7f2685aa6700 (LWP 13733))&quot; -&amp;gt; &quot;Lock 0x7f26c0334780 (mongo::MODE_IS)&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;   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;  &quot;Lock 0x7f26c0334780 (mongo::MODE_IS)&quot; -&amp;gt; &quot;&quot;conn288&quot; (Thread 0x7f268c2e4700 (LWP 31650))&quot;;&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;The first line is unclear; does it mean:&lt;/p&gt;

&lt;p&gt;&quot;Thread 1 is waiting to acquire Lock 1 in MODE_IS, but Lock 1 is held in a conflicting mode&quot;&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;&quot;Thread 1 is waiting to acquire Lock 1 in some mode which conflicts with the mode Lock 1 is currently held in, which is MODE_IS&quot;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I do assume the second line means &quot;Lock 2 is held by Thread 2 in MODE_IS.&quot;&lt;/p&gt;</comment>
                            <comment id="2028956" author="max.hirschhorn@10gen.com" created="Wed, 10 Oct 2018 14:14:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=esha.maharishi&quot; class=&quot;user-hover&quot; rel=&quot;esha.maharishi&quot;&gt;esha.maharishi&lt;/a&gt;, since I believe this ticket was file as a result of some confusion around seeing threads waiting on a lock held in MODE_IX, is there something I could do to help clarify the language being written to the task logs and used for the labels in the waits-for graph? The behavior you observed is expected when a MODE_X lock request is pending as how the lock manager ensures fairness / avoids starvation. As I mentioned in my comment above, information about the mode for the pending request would be challenging to try and get to appear in the waits-for graph because it tends to be optimized out of the frame we&apos;re examining. It is however usually recorded in an earlier stack frame or can be deduced from the C++ code in the stacktrace. The fully-detailed table of granted lock requests and pending lock requests would also be logged by the mongod process and would be visible in the test logs.&lt;/p&gt;</comment>
                            <comment id="2028647" author="max.hirschhorn@10gen.com" created="Wed, 10 Oct 2018 04:41:05 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Changes for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34738&quot; title=&quot;mongo_lock.py graph should display lock type for LockManager locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34738&quot;&gt;&lt;del&gt;SERVER-34738&lt;/del&gt;&lt;/a&gt; now display the lock requester&apos;s mode. We need to display the lock holder&apos;s mode as well.&lt;/p&gt;

&lt;p&gt;Other references to &lt;tt&gt;lock_request[&quot;mode&quot;]&lt;/tt&gt; should be modified as well, such that the mode is properly associated to holder.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jonathan.abrahams&quot; class=&quot;user-hover&quot; rel=&quot;jonathan.abrahams&quot;&gt;jonathan.abrahams&lt;/a&gt;, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1d6087b0314b0201cddf837e7edcf2703464ff73/buildscripts/gdb/mongo_lock.py#L339&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the &lt;tt&gt;find_lock_manager_holders()&lt;/tt&gt; function in mongo_lock.py iterates through the &lt;tt&gt;LockHead::grantedList&lt;/tt&gt; of any &lt;tt&gt;LockerImpl&lt;/tt&gt;&lt;/a&gt; where there&apos;s a pending lock request. It determines that there&apos;s a pending lock request by &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1d6087b0314b0201cddf837e7edcf2703464ff73/buildscripts/gdb/mongo_lock.py#L317&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the thread being blocked in a function on &lt;tt&gt;LockerImpl&lt;/tt&gt;&lt;/a&gt;. &lt;tt&gt;lock_request[&quot;mode&quot;]&lt;/tt&gt; therefore already represents the mode in which the lock is held. The &lt;tt&gt;mode&lt;/tt&gt; argument to the &lt;tt&gt;LockerImpl::lockComplete()&lt;/tt&gt; function that the waiter is blocked in would be the mode for the pending request. It tends to be optimized out in the &lt;tt&gt;LockerImpl::lockComplete()&lt;/tt&gt; frame that we&apos;d be unlikely to include it in the output anyway.&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;[2018/10/05 00:55:18.538] #7  0x00007f8c73000334 in mongo::LockerImpl::lockComplete (this=0x7f8c79d8e680, opCtx=0x0, resId=..., mode=&amp;lt;optimized out&amp;gt;, deadline=..., checkDeadlock=false) at src/mongo/db/concurrency/lock_state.cpp:853&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;[2018/10/05 00:55:18.538] #8  0x00007f8c72ff1061 in mongo::Lock::ResourceLock::lock (this=0x7f8c47c95d30, mode=&amp;lt;optimized out&amp;gt;) at src/mongo/db/concurrency/d_concurrency.cpp:323&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;[2018/10/05 00:55:18.538] #9  0x00007f8c72ff1131 in mongo::Lock::GlobalLock::_enqueue (this=0x7f8c47c95d20, lockMode=mongo::MODE_IS, deadline=...) at src/mongo/db/concurrency/d_concurrency.cpp:173&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;[2018/10/05 00:55:18.539] #10 0x00007f8c72ff11f2 in mongo::Lock::GlobalLock::GlobalLock (this=0x7f8c47c95d20, opCtx=&amp;lt;optimized out&amp;gt;, lockMode=mongo::MODE_IS, deadline=..., behavior=&amp;lt;optimized out&amp;gt;, enqueueOnly=...) at src/mongo/db/concurrency/d_concurrency.cpp:157&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;My understanding is that James Wahlin wanted to know the mode the lock is currently held in and that has been achieved in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34738&quot; title=&quot;mongo_lock.py graph should display lock type for LockManager locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34738&quot;&gt;&lt;del&gt;SERVER-34738&lt;/del&gt;&lt;/a&gt; already. Not including the mode for the pending request means that &lt;tt&gt;call (&apos;mongo::(anonymous namespace)::globalLockManager&apos;).dump()&lt;/tt&gt; continues to yield more information than the &lt;tt&gt;find_lock_manager_holders()&lt;/tt&gt; output, but I think I&apos;d rather leave addressing that gap to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28437&quot; title=&quot;Hang analyzer GDB module mongo_lock.py should use a memory based mechanism to discover the locks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28437&quot;&gt;&lt;del&gt;SERVER-28437&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="535354">SERVER-34738</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>4.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="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 10 Oct 2018 04:41:05 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 18 weeks 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, 18 weeks ago
                        </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>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jonathan.abrahams</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu95fb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htzjov:</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="2560">STM 2018-10-22</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</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|hu8ron:</customfieldvalue>

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