<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:21:59 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-15869] In a striped directory, there is a cache inconsistency problem on multiple clients when renaming files</title>
                <link>https://jira.whamcloud.com/browse/LU-15869</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This is a problem that can be stably reproduced. The reproduction steps are as follows&#65306;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Create a striped directory on Client A&lt;/li&gt;
&lt;/ol&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 mkdir -c -1 testdir&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;2. Create two files on client A 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;
cd testdir
echo &lt;span class=&quot;code-quote&quot;&gt;&quot;a&quot;&lt;/span&gt; &amp;gt; file
echo &lt;span class=&quot;code-quote&quot;&gt;&quot;b&quot;&lt;/span&gt; &amp;gt; tmpfile&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;3. stat files that have been created on clinet A&lt;/p&gt;

&lt;p&gt;&#160;&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;
stat file
stat tmpfile&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;4. stat files that have been created on clinet B&lt;/p&gt;

&lt;p&gt;&#160;&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;
cd testdir
stat file
stat tmpfile&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;5. mv file to file.1 on client A&lt;/p&gt;

&lt;p&gt;&#160;&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;
mv file file.1&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;6. stat file on two clients&lt;/p&gt;

&lt;p&gt;&#160;&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;
&lt;span class=&quot;code-comment&quot;&gt;// client A
&lt;/span&gt;stat file
&lt;span class=&quot;code-comment&quot;&gt;// client B
&lt;/span&gt;stat file&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;7. mv tmpfile to file on clinet A&lt;/p&gt;

&lt;p&gt;&#160;&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;
mv tmpfile file&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;8. stat file on two clients&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;
&lt;span class=&quot;code-comment&quot;&gt;// client A
&lt;/span&gt;stat file
&lt;span class=&quot;code-comment&quot;&gt;// client B
&lt;/span&gt;stat file&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;9. mv file to file.2 on client A&lt;/p&gt;

&lt;p&gt;&#160;&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;
mv file to file.2&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;10. The results of all the above steps seem to be correct, then stat file on the two clients, I found that client B read the wrong file dentry&lt;/p&gt;

&lt;p&gt;&#160;&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;
&lt;span class=&quot;code-comment&quot;&gt;// client A
&lt;/span&gt;stat file
&lt;span class=&quot;code-comment&quot;&gt;// client B&#65292; Read the file dentry, that has been mv stat file 
&lt;/span&gt;stat file&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

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

&lt;p&gt;Screenshots of all steps are shown below&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/attachment/43653/43653_image-2022-05-18-10-07-27-084.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Some clues have been found&lt;/p&gt;

&lt;p&gt;1. The last stat on client B, the dentry of the file read from the cache&lt;/p&gt;

&lt;p&gt;2. From the perspective of client processing flow, the cache is not released&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/attachment/43652/43652_image-2022-05-18-10-15-46-006.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;3. systemtap trace&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/attachment/43651/43651_image-2022-05-18-10-19-08-816.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;4. It looks like some locks are not cancelled&#12290; I found that the lock bits=27 allocated by client B in the penultimate stat file, when receiving ldlm_callback on client B due to rename, there is no callback for bits=27 lock&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/attachment/43650/43650_image-2022-05-18-10-26-53-310.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/attachment/43649/43649_image-2022-05-18-10-27-01-414.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="70342">LU-15869</key>
            <summary>In a striped directory, there is a cache inconsistency problem on multiple clients when renaming files</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</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="wc-triage">WC Triage</assignee>
                                    <reporter username="chenhui">Hui Chen</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 May 2022 02:27:26 +0000</created>
                <updated>Wed, 18 May 2022 02:27:26 +0000</updated>
                                            <version>Lustre 2.12.4</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                    <attachments>
                            <attachment id="43653" name="image-2022-05-18-10-07-27-084.png" size="1853400" author="chenhui" created="Wed, 18 May 2022 02:07:31 +0000"/>
                            <attachment id="43652" name="image-2022-05-18-10-15-46-006.png" size="857688" author="chenhui" created="Wed, 18 May 2022 02:15:50 +0000"/>
                            <attachment id="43651" name="image-2022-05-18-10-19-08-816.png" size="3285726" author="chenhui" created="Wed, 18 May 2022 02:19:13 +0000"/>
                            <attachment id="43650" name="image-2022-05-18-10-26-53-310.png" size="515077" author="chenhui" created="Wed, 18 May 2022 02:26:55 +0000"/>
                            <attachment id="43649" name="image-2022-05-18-10-27-01-414.png" size="493761" author="chenhui" created="Wed, 18 May 2022 02:27:04 +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|i02q7r:</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>