<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:41:22 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-11150] Use LCK_CR lock mode when send change layout intent to MDS</title>
                <link>https://jira.whamcloud.com/browse/LU-11150</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;In current implementation, the client uses LCK_EX lock mode for layout lock when issue a layout change intent RPC to MDS. This will grant LCK_EX layout lock to the client. However, the latter restarting I/O will refresh layout, which only matches LCK_CR | LCK_CW | LCK_PR | LCK_PW mode of cached layout lock locally. it will result in reacquiring CR layout lock from MDS and cancel the previously granted EX layout lock to the client via lock blocking callback. &lt;br/&gt;
This patch avoids the this kind of unnecessary lock conflict by using LCK_CR mode directly when issue the layout change intent RPC to MDS. And when MDS received this request, it will first take EX layout lock and change the layout at will according to the write intent, and release the EX layout lock. After that, return a CR layout lock together with layout informatiom to client for latter I/O.&lt;/p&gt;</description>
                <environment></environment>
        <key id="52711">LU-11150</key>
            <summary>Use LCK_CR lock mode when send change layout intent to MDS</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="qian_wc">Qian Yingjin</assignee>
                                    <reporter username="qian">Qian Yingjin</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Jul 2018 09:18:56 +0000</created>
                <updated>Thu, 16 Aug 2018 21:15:44 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="230340" author="gerrit" created="Tue, 17 Jul 2018 09:33:59 +0000"  >&lt;p&gt;Yingjin Qian (qian@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32824&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32824&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11150&quot; title=&quot;Use LCK_CR lock mode when send change layout intent to MDS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11150&quot;&gt;LU-11150&lt;/a&gt; llite: Use LCK_CR lock mode when change layout&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6870ba724736c4876a68b0e093f7445d9e02d965&lt;/p&gt;</comment>
                            <comment id="230402" author="qian" created="Wed, 18 Jul 2018 01:43:54 +0000"  >&lt;p&gt;The attachment contains the log about about FLR write.&lt;/p&gt;

&lt;p&gt;The commands to collect the log are as follows:&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
lfs mirror create -N2 /mnt/lustre/test
lctl dk
echo &lt;span class=&quot;code-quote&quot;&gt;&quot;QQQQ&quot;&lt;/span&gt; &amp;gt; /mnt/lustre/test
lctl dk &amp;gt; log
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;From the log, we can see :&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
00000002:00010000:0.0:1531750260.797779:0:32684:0:(mdc_locks.c:722:mdc_finish_enqueue()) ### layout lock returned by: layout, lvb_len: 240 ns: lustre-MDT0000-mdc-ffff88001fc95000 lock: ffff88001b094ec0/0x7957eded4f46b416 lrc: 3/0,1 mode: EX/EX res: [0x200000401:0x1:0x0].0x0 bits 0x8/0x0 rrc: 2 type: IBT flags: 0x0 nid: local remote: 0x7957eded4f46b41d expref: -99 pid: 32684 timeout: 0 lvb_type: 3&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
00000002:00010000:0.0:1531750260.797782:0:32684:0:(mdc_locks.c:1049:mdc_finish_intent_lock()) ### matching against &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; ns: lustre-MDT0000-mdc-ffff88001fc95000 lock: ffff88001b094ec0/0x7957eded4f46b416 lrc: 3/0,1 mode: EX/EX res: [0x200000401:0x1:0x0].0x0 bits 0x8/0x0 rrc: 2 type: IBT flags: 0x0 nid: local remote: 0x7957eded4f46b41d expref: -99 pid: 32684 timeout: 0 lvb_type: 3&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It returns the EX layout lock to the client. And the granted layout lock is cancelled later when refresh layout.&lt;/p&gt;</comment>
                            <comment id="230415" author="jinshan" created="Wed, 18 Jul 2018 04:35:39 +0000"  >&lt;p&gt;That means it exists a problem for this particular code path, please go the MDT to find the corresponding code and make a fix.&lt;/p&gt;

&lt;p&gt;The reason it requests a EX lock on the client is for early cancel.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="30520" name="log" size="89717" author="qian" created="Wed, 18 Jul 2018 01:39:17 +0000"/>
                    </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|hzzz67:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>