<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:40:52 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-4232] MDT and OST should validate incoming FIDs belong to local target</title>
                <link>https://jira.whamcloud.com/browse/LU-4232</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Problems in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4226&quot; title=&quot;MDS unable to locate swabbed FID SEQ in FLDB&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4226&quot;&gt;&lt;del&gt;LU-4226&lt;/del&gt;&lt;/a&gt; indicate that the MDS allows incoming file creates with bad FIDs to proceed, even though the FID SEQ is not in a valid range. These requests should be refused by the server.&lt;/p&gt;

&lt;p&gt;The source of the invalid SEQ may be related to PPC clients not swabbing the allocated SEQ range correctly, but that is the topic of another bug. &lt;/p&gt;</description>
                <environment></environment>
        <key id="21941">LU-4232</key>
            <summary>MDT and OST should validate incoming FIDs belong to local target</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>medium</label>
                            <label>ppc</label>
                    </labels>
                <created>Fri, 8 Nov 2013 18:02:37 +0000</created>
                <updated>Wed, 11 Aug 2021 18:04:02 +0000</updated>
                                            <version>Lustre 2.1.6</version>
                    <version>Lustre 2.6.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="71148" author="adilger" created="Fri, 8 Nov 2013 18:31:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4233&quot; title=&quot;Verify PPC FID swabbed correctly during create. &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4233&quot;&gt;LU-4233&lt;/a&gt; was filed for the PPC client swabbing issue. &lt;/p&gt;

&lt;p&gt;It may be that this checking has already been implemented for 2.4+ MDS due to local/remote checking for DNE.  Having a sanity.sh test using a new &lt;tt&gt;OBD_FAIL_  | CFS_FAIL_RAND&lt;/tt&gt; that randomly injects a bad FID SEQ on the client (maybe in mdc_pack_op_data()?) and has it try a bunch of different operations (e.g. by running racer) would be useful. &lt;/p&gt;

&lt;p&gt;The FID SEQ should also be verified for OST operations. This was not possible with FID_SEQ_OSD_MDT0 previously, but is possible for FID_SEQ_IDIF and FID_SEQ_NORMAL objects. That is more motivation for &lt;a href=&quot;http://review.whamcloud.com/7053&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/7053&lt;/a&gt; from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3569&quot; title=&quot;Use real OST index as ostid_to_fid() parameter instead of always &amp;quot;0&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3569&quot;&gt;&lt;del&gt;LU-3569&lt;/del&gt;&lt;/a&gt; to be landed. &lt;/p&gt;</comment>
                            <comment id="71695" author="adilger" created="Fri, 15 Nov 2013 23:31:21 +0000"  >&lt;p&gt;At a minimum this needs an audit of the MDT and OST code to verify that incoming code paths (in particular create) has valid FIDs for the target.  It may be that 2.4+ already has sufficient checking for this, in which case only a test is needed that forces a client to try and create some files with invalid FIDs (which should fail).&lt;/p&gt;</comment>
                            <comment id="78367" author="adilger" created="Tue, 4 Mar 2014 18:43:50 +0000"  >&lt;p&gt;Mike, I think that this is already done for OST object FIDs/ostids, and I &lt;em&gt;think&lt;/em&gt; that it is done for MDT object FIDs also.  Could you please check the code and confirm?  If yes, then this bug can be closed.&lt;/p&gt;</comment>
                            <comment id="80932" author="tappro" created="Thu, 3 Apr 2014 13:43:02 +0000"  >&lt;p&gt;Andreas, there is check fid_is_sane() for incoming FIDs on MDT, this should prevent the processing of swabbed FIDs. Meanwhile I am not sure about original meaning for this ticket, it says &apos;incoming FIDs belong to local target&apos;, does that mean FID must always be local, i.e. all incoming FIDs must be not remote objects?&lt;/p&gt;</comment>
                            <comment id="80948" author="adilger" created="Thu, 3 Apr 2014 15:37:57 +0000"  >&lt;p&gt;Mike, the original problem seen was that with older PPC clients they did not swab the incoming SEQ properly and then generated FIDs with bad SEQ to the MDS. If the MDS checked that the FID was local it would have returned an error to the client and we would have noticed and fixed that easily. &lt;/p&gt;</comment>
                            <comment id="80984" author="tappro" created="Thu, 3 Apr 2014 19:59:28 +0000"  >&lt;p&gt;yes, and fid_is_sane should catch such FIDs or you mean that doesn&apos;t help because only seq is no swabbed and looks like some other big sequence?&lt;br/&gt;
If we need to ensure FID is local for that particular MDT it would be more complex. For this we need to ask FLDB or get lu_object by that FID and check it is local.&lt;/p&gt;</comment>
                            <comment id="81113" author="jlevi" created="Mon, 7 Apr 2014 14:52:11 +0000"  >&lt;p&gt;Would it make sense to open a new ticket for the more complex work you mention and close this ticket?&lt;/p&gt;</comment>
                            <comment id="81135" author="adilger" created="Mon, 7 Apr 2014 19:17:38 +0000"  >&lt;p&gt;Mike, I thought Di implemented a local FLDB cache, so doing one FLDB lookup per RPC to verify the FID is local should be ok?&lt;/p&gt;

&lt;p&gt;Jodi, I don&apos;t know if there is a benefit to close this ticket and open a new one?  Are there any patches landed with this ticket?  If not, it could just be moved to 2.7.  I think the critical checks of this ticket are already present in 2.6, landed under other tickets. &lt;/p&gt;</comment>
                            <comment id="146484" author="adilger" created="Tue, 22 Mar 2016 16:53:41 +0000"  >&lt;p&gt;Also note that fid_is_sane() only checks if a FID &lt;em&gt;might&lt;/em&gt; be OK, but will let almost any value through, and is hardly a check at all. It does nothing to verify if the FID belongs to the client using it to create a new file, or if it belongs to the local server node. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="21917">LU-4226</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="19716">LU-3569</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="25650">LU-5369</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="21942">LU-4233</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|hzw8h3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11525</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>