<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:24: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-16171] e2fsck should handle multiply-claimed blocks better</title>
                <link>https://jira.whamcloud.com/browse/LU-16171</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Running e2fsck on a filesystem with a large number of multiply-claimed blocks can result in e2fsck running for many hours or possibly days.  In many such cases, the multiply-claimed blocks are caused by a corrupted inode or indirect block that causes a bad inode to overlap with many good inodes.   This problem is made worse when running on a large filesystem (16TB or more) because random 32-bit numbers in the &lt;tt&gt;inode-&amp;gt;i_blocks[]&lt;/tt&gt; array are always &quot;valid&quot; block numbers (with smaller filesystems the random block numbers would be detected as an error).  Garbage triple/double/indirect blocks will point to random &quot;valid&quot; blocks that will themselves contain other 32-bit block numbers and multiply the number of duplicate blocks exponentially.&lt;/p&gt;

&lt;p&gt;Rather than clone all of those blocks, or possibly deleting/zeroing all such inodes (as is suggested in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13446&quot; title=&quot;Security hole in default e2fsck behavior for duplicate blocks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13446&quot;&gt;&lt;del&gt;LU-13446&lt;/del&gt;&lt;/a&gt;) it would be better to find the &quot;bad&quot; inode(s) causing the most problems, and clear only them, rather than clearing all of the inodes with shared blocks.  However, care should be taken to avoid spuriously clearing inodes that only share blocks with a small number of peers, as it is difficult to know for sure in this case which inode is the bad one.&lt;/p&gt;

&lt;p&gt;An added difficulty in implementing this is that the full list of inodes sharing a given block is only available in pass1d, at which point it is already starting to clone the shared blocks.  Some work might be possible in pass1b, by monitoring which inodes have the most shared blocks, but this isn&apos;t totally clear yet whether just counting the shared &lt;b&gt;blocks&lt;/b&gt; is sufficient (divided by a factor like 4096 to avoid penalizing inodes that just have a bad indirect/index block), or if it is better to only count the shared &lt;b&gt;inodes&lt;/b&gt;. &lt;/p&gt;

&lt;p&gt;Further complicating implementing the solution is that the &quot;dict&quot; code in e2fsck is only &lt;b&gt;adds&lt;/b&gt; duplicate inodes with shared clusters to the list, and never &lt;b&gt;removes&lt;/b&gt; anything from the dict (this code is even #ifdef&apos;d out in the library), so this will need additional development to get the dict removal code working correctly.  At that point, the goal is if a particularly bad inode is found (sharing blocks with dozens of other inodes), it should be removed from the inode and cluster dictionaries, and hopefully the processing of all later inodes would be trivial since they no longer share any inodes.&lt;/p&gt;

&lt;p&gt;Failing the &quot;delete bad inode from dict&quot; approach, it would be possible to clear the bad inode and restart e2fsck, but this might need a few restarts (full pass1 repeat) if there are multiple bad inodes (which is likely).   However, that may still be preferable and faster (a couple of hours) than running pass1d for a very long time.&lt;/p&gt;</description>
                <environment></environment>
        <key id="72429">LU-16171</key>
            <summary>e2fsck should handle multiply-claimed blocks better</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="1">Fixed</resolution>
                                        <assignee username="adilger">Andreas Dilger</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Sep 2022 19:44:24 +0000</created>
                <updated>Mon, 28 Nov 2022 06:39:37 +0000</updated>
                            <resolved>Thu, 13 Oct 2022 14:21:10 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="347428" author="gerrit" created="Wed, 21 Sep 2022 19:41:12 +0000"  >&lt;p&gt;&quot;Andreas Dilger &amp;lt;adilger@whamcloud.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/48620&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/48620&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16171&quot; title=&quot;e2fsck should handle multiply-claimed blocks better&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16171&quot;&gt;&lt;del&gt;LU-16171&lt;/del&gt;&lt;/a&gt; e2fsck: improve pass1b bad inode handling&lt;br/&gt;
Project: tools/e2fsprogs&lt;br/&gt;
Branch: master-lustre&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 20cbd7540176d061b2339946026da1f3035dae4e&lt;/p&gt;</comment>
                            <comment id="349445" author="gerrit" created="Wed, 12 Oct 2022 23:30:22 +0000"  >&lt;p&gt;&quot;Li Dongyang &amp;lt;dongyangli@ddn.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/tools/e2fsprogs/+/48620/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/tools/e2fsprogs/+/48620/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16171&quot; title=&quot;e2fsck should handle multiply-claimed blocks better&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16171&quot;&gt;&lt;del&gt;LU-16171&lt;/del&gt;&lt;/a&gt; e2fsck: improve pass1b bad inode handling&lt;br/&gt;
Project: tools/e2fsprogs&lt;br/&gt;
Branch: master-lustre&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: dc8e935a6f9f394d7c31c3a2011899cd7bde0cac&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="70960">LU-15985</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="53835">LU-11577</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="21394">LU-4102</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="58734">LU-13446</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57262">LU-12913</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </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|i030mv:</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>