<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:01:38 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>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-6603] lock enqueue dead lock for remote directory</title>
                <link>https://jira.whamcloud.com/browse/LU-6603</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;During racer, I saw a few trace like&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;ls            D 0000000000000007     0 103841      1 0x00000080
 ffff8801f2e676d8 0000000000000086 ffff8801f2e67628 ffffffffa1723875
 ffff8801f2e676b8 ffffffffa174afa2 0000000000000000 0000000000000000
 ffffffffa1804880 ffff8801c660d000 ffff8801c8238638 ffff8801f2e67fd8
Call Trace:
 [&amp;lt;ffffffffa1723875&amp;gt;] ? lustre_msg_buf+0x55/0x60 [ptlrpc]
 [&amp;lt;ffffffffa174afa2&amp;gt;] ? __req_capsule_get+0x162/0x6e0 [ptlrpc]
 [&amp;lt;ffffffffa1727da0&amp;gt;] ? lustre_swab_mdt_rec_reint+0x0/0xc0 [ptlrpc]
 [&amp;lt;ffffffff8152bba6&amp;gt;] __mutex_lock_slowpath+0x96/0x210
 [&amp;lt;ffffffffa197ef59&amp;gt;] ? mdc_open_pack+0x1b9/0x250 [mdc]
 [&amp;lt;ffffffff8152b6cb&amp;gt;] mutex_lock+0x2b/0x50
 [&amp;lt;ffffffffa1982802&amp;gt;] mdc_enqueue+0x222/0x1a40 [mdc]
 [&amp;lt;ffffffffa1984202&amp;gt;] mdc_intent_lock+0x1e2/0x593 [mdc]
 [&amp;lt;ffffffffa083b920&amp;gt;] ? ll_md_blocking_ast+0x0/0x7d0 [lustre]
 [&amp;lt;ffffffffa16f8460&amp;gt;] ? ldlm_completion_ast+0x0/0x9b0 [ptlrpc]
 [&amp;lt;ffffffffa194cd11&amp;gt;] ? lmv_fld_lookup+0xf1/0x440 [lmv]
 [&amp;lt;ffffffffa1949b57&amp;gt;] lmv_intent_remote+0x337/0xa90 [lmv]
 [&amp;lt;ffffffffa083b920&amp;gt;] ? ll_md_blocking_ast+0x0/0x7d0 [lustre]
 [&amp;lt;ffffffffa194cb43&amp;gt;] lmv_intent_lock+0x1a23/0x1b00 [lmv]
 [&amp;lt;ffffffff811749e3&amp;gt;] ? kmem_cache_alloc_trace+0x1a3/0x1b0
 [&amp;lt;ffffffffa0837c89&amp;gt;] ? ll_i2suppgid+0x19/0x30 [lustre]
 [&amp;lt;ffffffffa0849fa7&amp;gt;] ? ll_mdscapa_get+0x57/0x220 [lustre]
 [&amp;lt;ffffffffa081c2a6&amp;gt;] ? ll_prep_md_op_data+0x236/0x550 [lustre]
 [&amp;lt;ffffffffa083b920&amp;gt;] ? ll_md_blocking_ast+0x0/0x7d0 [lustre]
 [&amp;lt;ffffffffa083d629&amp;gt;] ll_lookup_it+0x249/0xdb0 [lustre]
 [&amp;lt;ffffffffa083e219&amp;gt;] ll_lookup_nd+0x89/0x5e0 [lustre]
 [&amp;lt;ffffffff8119e0f5&amp;gt;] do_lookup+0x1a5/0x230
 [&amp;lt;ffffffff8119ed84&amp;gt;] __link_path_walk+0x7a4/0x1000
 [&amp;lt;ffffffff8119f89a&amp;gt;] path_walk+0x6a/0xe0
 [&amp;lt;ffffffff8119faab&amp;gt;] filename_lookup+0x6b/0xc0
 [&amp;lt;ffffffff8122db26&amp;gt;] ? security_file_alloc+0x16/0x20
 [&amp;lt;ffffffff811a0f84&amp;gt;] do_filp_open+0x104/0xd20
 [&amp;lt;ffffffffa080b36c&amp;gt;] ? ll_file_release+0x2fc/0xb40 [lustre]
 [&amp;lt;ffffffff8129980a&amp;gt;] ? strncpy_from_user+0x4a/0x90
 [&amp;lt;ffffffff811ae432&amp;gt;] ? alloc_fd+0x92/0x160
 [&amp;lt;ffffffff8118b237&amp;gt;] do_sys_open+0x67/0x130
 [&amp;lt;ffffffff8100c675&amp;gt;] ? math_state_restore+0x45/0x60
 [&amp;lt;ffffffff8118b340&amp;gt;] sys_open+0x20/0x30
 [&amp;lt;ffffffff8100b072&amp;gt;] system_call_fastpath+0x16/0x1b
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So for cross-MDT directory, after client get LOOKUP lock from the master MDT, it will hold it, then send enqueue request (for UPDATE lock) to the slave MDT (child MDT), if it can not get the RPC lock of the client and being blocked, then LOOKUP lock will be holding on the client side.&lt;/p&gt;

&lt;p&gt;In the mean time, if another thread hold the RPC lock, but enqueue the LOOKUP lock on the  MDT, it will cause DEAD lock.&lt;/p&gt;

&lt;p&gt;So we should either use different PORTAL or do not do rpc_lock for cross-ref RPC.&lt;/p&gt;</description>
                <environment></environment>
        <key id="30088">LU-6603</key>
            <summary>lock enqueue dead lock for remote directory</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="di.wang">Di Wang</assignee>
                                    <reporter username="di.wang">Di Wang</reporter>
                        <labels>
                            <label>dne2</label>
                    </labels>
                <created>Fri, 15 May 2015 01:19:53 +0000</created>
                <updated>Fri, 9 Sep 2016 19:30:13 +0000</updated>
                            <resolved>Wed, 26 Aug 2015 18:08:04 +0000</resolved>
                                    <version>Lustre 2.7.0</version>
                    <version>Lustre 2.5.3</version>
                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="125242" author="di.wang" created="Wed, 26 Aug 2015 18:08:04 +0000"  >&lt;p&gt;This will not be an issue after multiple-slot patch is landed.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzxdcv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

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