<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:55:54 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-5949] Verify e2fsck inode badness is working for duplicate blocks</title>
                <link>https://jira.whamcloud.com/browse/LU-5949</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;A number of cases of corrupt inodes have lead to large numbers of duplicate blocks during e2fsck runs. Corrupt inodes should be detected as such during e2fsck scanning and be cleared instead of invoking duplicate block resolution in pass1b. &lt;/p&gt;

&lt;p&gt;This may be complicated by running &quot;e2fsck -fn&quot; that does not clear these corrupt inodes during pass1. Need to verify that inode badness is working properly, and possibly figure a way that &quot;e2fsck -fn&quot;&lt;/p&gt;</description>
                <environment></environment>
        <key id="27691">LU-5949</key>
            <summary>Verify e2fsck inode badness is working for duplicate blocks</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</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>
                            <label>e2fsck</label>
                    </labels>
                <created>Sun, 23 Nov 2014 17:59:58 +0000</created>
                <updated>Tue, 9 Feb 2021 18:04:53 +0000</updated>
                            <resolved>Mon, 8 Feb 2021 11:26:57 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="259247" author="adilger" created="Thu, 5 Dec 2019 21:39:19 +0000"  >&lt;p&gt;It is clear from several reports that the e2fsck inode badness is not working correctly for duplicate blocks.  It is intended functionality is that if some inode is reporting duplicate blocks, but also had other errors such as bad flags, size, blocks, mode, etc. then it is likely that this inode is actually corrupt/garbage and should be cleared instead of spending a long time to clone the file blocks just to have a garbage inode with some other file&apos;s data.&lt;/p&gt;

&lt;p&gt;Avoiding the e2fsck pass1b/1c/1d process can save a very significant amount of time when running on a large/corrupt filesystem, and would be preferable to trying to repair such inodes.&lt;/p&gt;

&lt;p&gt;It has also been suggested that &lt;b&gt;instead&lt;/b&gt; of the &quot;inode badness&quot; feature (which is not yet landed upstream because it touches a lot of different code) that instead e2fsck check all of the inodes in an itable block together, and if there is corruption across multiple inodes in that block block that this be used as the &quot;badness&quot; for the inode, and consider those inodes as targets for deletion if they are also found to be sharing blocks.  I think it is potentially dangerous to &lt;b&gt;always&lt;/b&gt; clear a block of inodes that are all showing corruption, in case this corruption is systematic (e.g. clearing some feature flag, updating the checksum after filesystem UUID was changed, etc).&lt;/p&gt;</comment>
                            <comment id="259579" author="dongyang" created="Wed, 11 Dec 2019 05:16:29 +0000"  >&lt;p&gt;I believe inode_badness patch just checks the inode fields without looking at the dup blocks at the moment, and offers to delete the inode in pass2 and pass4 if the badness is over the threshold.&lt;/p&gt;

&lt;p&gt;dup blocks are handled independently by&#160;e2fsck: allow deleting or zeroing shared blocks.&lt;/p&gt;

&lt;p&gt;I think we could check if the badness is over before pass1b, and skip/delete the inode before scanning for dup blocks.&lt;/p&gt;</comment>
                            <comment id="259586" author="adilger" created="Wed, 11 Dec 2019 08:09:07 +0000"  >&lt;p&gt;One difficulty with checking the badness before doing the duplicate scanning is that the outcome depends on the order the inodes were processed in.  The e2fsck block bitmap only stores if a block is used for pass1, assuming that no duplicate blocks exist in the filesystem.  If e2fsck finds any duplicate blocks it has to re-scan the whole filesystem to find the inodes that are sharing blocks.&lt;/p&gt;

&lt;p&gt;It is possible that we could avoid pass1 in some cases by clearing the bad inode rather than adding the blocks into the bitmap, assuming that the good inode is processed first and adds its blocks to the bitmap, and then the bad inode is found later and verified  and does  &lt;b&gt;not&lt;/b&gt; add which would avoid pass1b sometimes.&lt;/p&gt;

&lt;p&gt;The other proposal that Ted Ts&apos;o had was to check all inodes in a block at the same time.  That makes it easier to detect if a whole block is corrupted.&lt;/p&gt;</comment>
                            <comment id="291422" author="gerrit" created="Mon, 8 Feb 2021 11:25:33 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/41328/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/41328/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5949&quot; title=&quot;Verify e2fsck inode badness is working for duplicate blocks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5949&quot;&gt;&lt;del&gt;LU-5949&lt;/del&gt;&lt;/a&gt; e2fsck: simplify inode badness handling&lt;br/&gt;
Project: tools/e2fsprogs&lt;br/&gt;
Branch: master-lustre&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 8725134d27574605c3da74b46df909e419d02b63&lt;/p&gt;</comment>
                            <comment id="291501" author="gerrit" created="Tue, 9 Feb 2021 07:49:49 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/41450&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/41450&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5949&quot; title=&quot;Verify e2fsck inode badness is working for duplicate blocks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5949&quot;&gt;&lt;del&gt;LU-5949&lt;/del&gt;&lt;/a&gt; e2fsck: call delete_inode() properly&lt;br/&gt;
Project: tools/e2fsprogs&lt;br/&gt;
Branch: master-lustre&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 7257c1a81bcf13ad7a88da7bb54625a61aba8163&lt;/p&gt;</comment>
                            <comment id="291542" author="gerrit" created="Tue, 9 Feb 2021 18:04:53 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/41450/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/41450/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5949&quot; title=&quot;Verify e2fsck inode badness is working for duplicate blocks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5949&quot;&gt;&lt;del&gt;LU-5949&lt;/del&gt;&lt;/a&gt; e2fsck: call delete_inode() properly&lt;br/&gt;
Project: tools/e2fsprogs&lt;br/&gt;
Branch: master-lustre&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 4aea203f2d490f53596eb21233bf0c186a5b3679&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="57262">LU-12913</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="38564">LU-8465</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59488">LU-13650</issuekey>
        </issuelink>
                            </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|hzx1dr:</customfieldvalue>

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