<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:54:39 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-5802] LFSCK 5: avoid the (direct) interaction between MDD and LFSCK under the case of insufficient space to hold all linkEA entries</title>
                <link>https://jira.whamcloud.com/browse/LU-5802</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;For a multiple-linked MDT-object, its extended attribute space is limited. As making more hard links to the MDT-object, more and more linkEA entries will be added into its linkEA until there is not enough space to hole the new linkEA entries. Under such case, only the &quot;nlink&quot; attribute will be increased when makes new hard link(s) to the MDT-oject.&lt;/p&gt;

&lt;p&gt;Namespace LFSCK will try to check whether the linkEA matches its &quot;nlink&quot; attribute or not, and may update the &quot;nlink&quot; attribute according to the linkEA if the LFSCK is sure that the linkEA is trustable. So how to make the linkEA is trustable is very important. Generally, multiple-linked DMT-objects are rare, especially the case of the linkEA entries exceeding the linkEA space limitation is more rare. So as the namespace LFSCK first-scanning, all the known name entries will recorded in its linkEA, then during the second-stage scanning, the LFSCK can update the &quot;nlink&quot; attribute according to the linkEA entries count which is equal to the known name entries count.&lt;/p&gt;

&lt;p&gt;Generally, above mechanism will work well. But there are two corner cases to be considered:&lt;br/&gt;
1) If the target MDT-object is a multiple-linked one, and during the first-stage scanning, the namespace LFSCK finds that it cannot record all the known name entries in the linkEA, then it should use some flag to skip the &quot;nlink&quot; verification against this MDT-object in the second-stage scanning. There are two possible ways for that:&lt;br/&gt;
1.1) Record such MDT-object&apos;s FID in the namespace LFSCK trace file.&lt;br/&gt;
1.2) Add some flag (such as SKIP_NLINK) in the MDT-object&apos;s linkEA header.&lt;/p&gt;

&lt;p&gt;2) If the multiple-linked MDT-object has enough space to hold all the known name entries during the first-stage scanning when the LFSCK scans them, but its linkEA is overflow after that, then it also needs to tell the LFSCK to skip the &quot;nlink&quot; verification against this MDT-object in the second-stage scanning. Currently, the LFSCK uses 1.1) as the solution. The short-coming for 1.1) is that the MDD needs to talk with LFSCK to record the FID when linkEA overflow, such interaction makes the stack layer unclear. As for the solution 1.2), it seems not suitable for the case 2), because once the flag &quot;SKIP_NLINK&quot; is set in the linkEA header, then it cannot be removed. The LFSCK cannot know whether there will be more hard links to the target MDT-object after it scans, so even if the namespace LFSCK thought that it has known all the name entries to such MDT-object, it may be missed some, so during the second-stage scanning, when it finds the &quot;SKIP_NLINK&quot; flag in the linkEA header, it cannot remove it, and cannot update the &quot;nlink&quot; attribute according to the linkEA.&lt;/p&gt;

&lt;p&gt;Please refer to the following link for more discussion:&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#/c/11516/21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/11516/21&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="27290">LU-5802</key>
            <summary>LFSCK 5: avoid the (direct) interaction between MDD and LFSCK under the case of insufficient space to hold all linkEA entries</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="3">Duplicate</resolution>
                                        <assignee username="yong.fan">nasf</assignee>
                                    <reporter username="yong.fan">nasf</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Oct 2014 00:25:53 +0000</created>
                <updated>Sun, 30 Jan 2022 09:50:30 +0000</updated>
                            <resolved>Sun, 30 Jan 2022 09:50:30 +0000</resolved>
                                    <version>Lustre 2.7.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="97382" author="bzzz" created="Fri, 24 Oct 2014 12:37:17 +0000"  >&lt;p&gt;a lot of space is consumed by names, I think. so when LinkEA overflows we could reformat it storing only the parent FIDs. then path2fid code would need to scan the directories, of course, but this is supposed to be very rare case..&lt;/p&gt;</comment>
                            <comment id="97498" author="adilger" created="Sat, 25 Oct 2014 06:13:18 +0000"  >&lt;p&gt;Storing only the FID would allow about 2x or 3x more entries to be stored in the LinkEA, but won&apos;t solve the problem. If there are a lot of links it would be better to enable the large_xattr feature and store all of the link names. ZFS also doesn&apos;t have this limitation, so I&apos;d prefer not to change the format for only marginal gains. &lt;/p&gt;</comment>
                            <comment id="97670" author="bzzz" created="Tue, 28 Oct 2014 08:05:09 +0000"  >&lt;p&gt;another idea we&apos;ve been discussing in gerrit is that LinkEA header might have a timestamp (or transno) specifying time when MDD/LFSCK couldn&apos;t add a name due to lack of space. if the header hasn&apos;t been updated during the current LFSCK run, then all the found names are listed in LinkEA and it&apos;s now safe to drop no-space flag from the header and check nlink.&lt;/p&gt;</comment>
                            <comment id="171864" author="yong.fan" created="Tue, 1 Nov 2016 04:37:28 +0000"  >&lt;p&gt;The issue will be resolved via the patch:&lt;br/&gt;
&lt;a href=&quot;http://review.whamcloud.com/#/c/23500/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/23500/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="39229">LU-8569</issuekey>
        </issuelink>
                            </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|hzwze7:</customfieldvalue>

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