<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:55: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>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-5916] OST pool inheritence is no longer persistent (no LOV EA for child directory)</title>
                <link>https://jira.whamcloud.com/browse/LU-5916</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;A child directory should inherit from the OST pool of its parent.&lt;/p&gt;

&lt;p&gt;In Lustre 2.4 to master (2.7), this is no longer the case: the child directory has no LOV EA stored on the MDS, so the pool inheritance is lost when the MDS restarts.&lt;/p&gt;

&lt;p&gt;lfs getstripe indicates the child directory doesn&apos;t inherit from its parent pool.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;mkdir /mnt/lustre/dir&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;lfs setstripe -p lustre.pool1 /mnt/lustre/dir&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;lfs getstripe -p /mnt/lustre/dir&lt;/tt&gt;&lt;br/&gt;
returns &quot;lustre.pool1&quot; (correct)&lt;br/&gt;
&lt;tt&gt;mkdir /mnt/lustre/dir/subdir&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;lfs getstripe -p /mnt/lustre/dir/subdir&lt;/tt&gt;&lt;br/&gt;
&lt;b&gt;-&amp;gt; empty (should return lustre.pool1)&lt;/b&gt;&lt;br/&gt;
&lt;tt&gt;getfattr -n trusted.lov -d /mnt/lustre/dir/subdir&lt;/tt&gt;&lt;br/&gt;
&lt;b&gt;/mnt/lustre/dir/subdir: trusted.lov: No such attribute&lt;/b&gt;&lt;br/&gt;
&lt;tt&gt;touch /mnt/lustre/dir/subdir/file&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;lfs getstripe -p /mnt/lustre/dir/subdir/file&lt;/tt&gt;&lt;br/&gt;
returns &quot;lustre.pool1&quot; (correct). Its seams the MDS inherited the pool somehow.&lt;/p&gt;

&lt;p&gt;Then, after restarting the MDS:&lt;br/&gt;
&lt;tt&gt;touch /mnt/lustre/dir/subdir/file2&lt;/tt&gt;&lt;br/&gt;
&lt;tt&gt;lfs getstripe -p /mnt/lustre/dir/subdir/file2&lt;/tt&gt;&lt;br/&gt;
&lt;b&gt;-&amp;gt; empty (should be lustre.pool1)&lt;/b&gt;&lt;/p&gt;</description>
                <environment>el6&lt;br/&gt;
Lustre 2.4 to Lustre 2.7 (master).</environment>
        <key id="27577">LU-5916</key>
            <summary>OST pool inheritence is no longer persistent (no LOV EA for child 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="1">Fixed</resolution>
                                        <assignee username="niu">Niu Yawei</assignee>
                                    <reporter username="leibovici-cea">Thomas LEIBOVICI - CEA</reporter>
                        <labels>
                            <label>HB</label>
                    </labels>
                <created>Thu, 13 Nov 2014 10:58:56 +0000</created>
                <updated>Fri, 24 Feb 2017 07:01:32 +0000</updated>
                            <resolved>Mon, 29 Dec 2014 14:49:50 +0000</resolved>
                                    <version>Lustre 2.6.0</version>
                    <version>Lustre 2.7.0</version>
                    <version>Lustre 2.5.2</version>
                    <version>Lustre 2.4.3</version>
                                    <fixVersion>Lustre 2.7.0</fixVersion>
                    <fixVersion>Lustre 2.5.4</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>11</watches>
                                                                            <comments>
                            <comment id="99031" author="pjones" created="Thu, 13 Nov 2014 13:02:33 +0000"  >&lt;p&gt;Niu&lt;/p&gt;

&lt;p&gt;Could you please advise?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="99136" author="niu" created="Fri, 14 Nov 2014 03:45:09 +0000"  >&lt;p&gt;I checked the code, looks we lost this when integrating LOD into the stack (that&apos;s from 2.3.51), because the default trusted.lov can still being inherited from parent and cached in memory, so creating file before restarting MDS should be fine.&lt;/p&gt;

&lt;p&gt;See the comment from mdd_object_create():&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;        /* During creation, there are only a few cases we need &lt;span class=&quot;code-keyword&quot;&gt;do&lt;/span&gt; xattr_set to
         * create stripes.
         * 1. regular file: see comments above.
         * 2. create striped directory with provided stripeEA.
         * 3. create striped directory because inherit &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; layout from the
         * parent. */
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Obviously we missed the 4th case that creating dir which inherits default striping (XATTR_NAME_LOV) from parent.&lt;/p&gt;

&lt;p&gt;And seems there are some other problems in this code path:&lt;/p&gt;

&lt;p&gt;In declare stage, see mdd_declare_object_create():&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;/* replay &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt;, create LOV EA from client data */&lt;/span&gt;
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (spec-&amp;gt;no_create ||
            (spec-&amp;gt;sp_cr_flags &amp;amp; MDS_OPEN_HAS_EA &amp;amp;&amp;amp; S_ISREG(attr-&amp;gt;la_mode))) {
                &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; struct lu_buf *buf;

                buf = mdd_buf_get_const(env, spec-&amp;gt;u.sp_ea.eadata,
                                        spec-&amp;gt;u.sp_ea.eadatalen);
                rc = mdo_declare_xattr_set(env, c, buf, XATTR_NAME_LOV, 0,
                                           handle);
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc)
                        GOTO(out, rc);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It just missed declare for the case of inheriting parent&apos;s XATTR_NAME_LMV or XATTR_NAME_LOV.&lt;/p&gt;

&lt;p&gt;In create stage, see mdd_object_create():&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-keyword&quot;&gt;if&lt;/span&gt; (spec-&amp;gt;no_create ||
            (S_ISREG(attr-&amp;gt;la_mode) &amp;amp;&amp;amp; spec-&amp;gt;sp_cr_flags &amp;amp; MDS_OPEN_HAS_EA) ||
            S_ISDIR(attr-&amp;gt;la_mode)) {
                &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; struct lu_buf *buf;

                buf = mdd_buf_get_const(env, spec-&amp;gt;u.sp_ea.eadata,
                                        spec-&amp;gt;u.sp_ea.eadatalen);
                rc = mdo_xattr_set(env, son, buf,
                                   S_ISDIR(attr-&amp;gt;la_mode) ? XATTR_NAME_LMV :
                                                            XATTR_NAME_LOV, 0,
                                   handle, BYPASS_CAPA);
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc != 0)
                        GOTO(err_destroy, rc);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It seems to me that when inheriting parent&apos;s XATTR_NAME_LMV, the passed spec-&amp;gt;u.sp_ea.eadata should be NULL, I&apos;m not sure how it worked. Di, could take a look to see if I missed anytying here?&lt;/p&gt;</comment>
                            <comment id="99318" author="gerrit" created="Mon, 17 Nov 2014 07:05:27 +0000"  >&lt;p&gt;Niu Yawei (yawei.niu@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/12746&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12746&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5916&quot; title=&quot;OST pool inheritence is no longer persistent (no LOV EA for child directory)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5916&quot;&gt;&lt;del&gt;LU-5916&lt;/del&gt;&lt;/a&gt; lod: inherit default pool setting properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2b237b11932af2b8dcf4a0401fc8e6c7cee37fbf&lt;/p&gt;</comment>
                            <comment id="99321" author="niu" created="Mon, 17 Nov 2014 07:17:35 +0000"  >&lt;p&gt;I looked into the code closer and realized that the NAME_LOV for default stripping/pool is declared in lod_declare_object_create() and the NAME_LOV is set in mdd_object_create() -&amp;gt; lod_xattr_set() -&amp;gt; lod_dir_striping_create(), but for the case of parent has only pool setting (no default stripping), inheriting NAME_LOV is skipped mistakenly, see lod_dir_striping_create_internal():&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;/* Transfer &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; LOV striping from the parent */&lt;/span&gt;
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lo-&amp;gt;ldo_striping_cached &amp;amp;&amp;amp;
            !LOVEA_DELETE_VALUES(lo-&amp;gt;ldo_def_stripe_size,
                                 lo-&amp;gt;ldo_def_stripenr,
                                 lo-&amp;gt;ldo_def_stripe_offset)){
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This patch fix the problem: &lt;a href=&quot;http://review.whamcloud.com/#/c/12746&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/12746&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="99329" author="gerrit" created="Mon, 17 Nov 2014 14:44:26 +0000"  >&lt;p&gt;Niu Yawei (yawei.niu@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/12746&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12746&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5916&quot; title=&quot;OST pool inheritence is no longer persistent (no LOV EA for child directory)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5916&quot;&gt;&lt;del&gt;LU-5916&lt;/del&gt;&lt;/a&gt; lod: inherit default pool setting properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 2&lt;br/&gt;
Commit: 4c11c85c283bb200cadc492be42b298aefea1177&lt;/p&gt;</comment>
                            <comment id="102056" author="gerrit" created="Fri, 19 Dec 2014 15:04:29 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/12746/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12746/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5916&quot; title=&quot;OST pool inheritence is no longer persistent (no LOV EA for child directory)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5916&quot;&gt;&lt;del&gt;LU-5916&lt;/del&gt;&lt;/a&gt; lod: inherit default pool setting properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: e8214d6bd4ccc3ff386c77904664c60f1848ef11&lt;/p&gt;</comment>
                            <comment id="102356" author="jlevi" created="Mon, 29 Dec 2014 14:49:50 +0000"  >&lt;p&gt;Patch landed to Master.&lt;/p&gt;</comment>
                            <comment id="103466" author="hdoreau" created="Wed, 14 Jan 2015 13:26:19 +0000"  >&lt;p&gt;Could a backport to b2_5 be considered? The patch fixes a critical regression.&lt;/p&gt;</comment>
                            <comment id="103572" author="niu" created="Thu, 15 Jan 2015 09:27:21 +0000"  >&lt;p&gt;Sure, I&apos;m going to port it to b2_5.&lt;/p&gt;</comment>
                            <comment id="103573" author="gerrit" created="Thu, 15 Jan 2015 09:48:26 +0000"  >&lt;p&gt;Niu Yawei (yawei.niu@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/13411&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13411&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5916&quot; title=&quot;OST pool inheritence is no longer persistent (no LOV EA for child directory)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5916&quot;&gt;&lt;del&gt;LU-5916&lt;/del&gt;&lt;/a&gt; lod: inherit default pool setting properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_5&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 840c3fa79c535578b17037ae9f3f6a4838255531&lt;/p&gt;</comment>
                            <comment id="103574" author="niu" created="Thu, 15 Jan 2015 09:49:18 +0000"  >&lt;p&gt;port to b2_5: &lt;a href=&quot;http://review.whamcloud.com/#/c/13411/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/13411/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="104802" author="gerrit" created="Tue, 27 Jan 2015 02:42:35 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/13411/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13411/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5916&quot; title=&quot;OST pool inheritence is no longer persistent (no LOV EA for child directory)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5916&quot;&gt;&lt;del&gt;LU-5916&lt;/del&gt;&lt;/a&gt; lod: inherit default pool setting properly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_5&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 56211bf18fbca9930d77cea1ee0e3f2d83d59ec4&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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|hzx0uv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16515</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>