<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:58:31 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-13115] always check object existence after mo_xattr_get()</title>
                <link>https://jira.whamcloud.com/browse/LU-13115</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;There is specific case with &lt;tt&gt;lu_object LOHA_EXISTS&lt;/tt&gt; flag in DNE environment when it can be dropped if remote object was found non-existent (deleted most likely?) which may cause problems in current MDT code paths.&lt;/p&gt;

&lt;p&gt;Without DNE &lt;tt&gt;LOHA_EXISTS&lt;/tt&gt; is never dropped being set, when object is deleted it is just marked as destroyed (by &lt;tt&gt;LU_OBJECT_HEARD_BANSHEE&lt;/tt&gt; flag). Therefore object being once checked for existence is always &apos;exists&apos; in rest of code at least until &lt;tt&gt;lu_object_put()&lt;/tt&gt; and requires no extra checks with &lt;tt&gt;lu_object_exists()&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;With DNE the &lt;tt&gt;LOHA_EXISTS&lt;/tt&gt; flag can be dropped during &lt;tt&gt;osp_xattr_get()&lt;/tt&gt;. I am not sure if that was right decision, probably we have to keep the same semantic and keep &lt;tt&gt;LOHA_EXISTS&lt;/tt&gt; always but just mark object as non-existent remotely, or use &lt;tt&gt;LU_OBJECT_HEARD_BANSHEE&lt;/tt&gt; also like for local objects. Anyway, with DNE it is possible that existent object can become non-existent after &lt;tt&gt;mo_xattr_get()&lt;/tt&gt; call. Therefore a return code of &lt;tt&gt;mo_xattr_get()&lt;/tt&gt; must always be handled and checked for -ENOENT or &lt;tt&gt;lu_object_exists()&lt;/tt&gt; must be performed right after that call. &lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;mdt_pack_secctx_in_reply()&lt;/tt&gt; ignores all return code silently and that opens door for &lt;tt&gt;lu_object_exists()&lt;/tt&gt; assertions in further code path. While this function is about the optional XATTR getting it is still important to check -ENOENT case because it might change object state.&lt;/p&gt;

&lt;p&gt;Also there can be other places in code where result of &lt;tt&gt;mo_xattr_get()&lt;/tt&gt; is not handled and this remains obscured for code writers. I wonder how to make people know about that &lt;tt&gt;mo_xattr_get()&lt;/tt&gt; specific, probably &lt;tt&gt;osp_xattr_get()&lt;/tt&gt; should be revised to don&apos;t drop &lt;tt&gt;LOHA_EXISTS&lt;/tt&gt; flag but mark object as non-existent remotely.&lt;/p&gt;</description>
                <environment></environment>
        <key id="57735">LU-13115</key>
            <summary>always check object existence after mo_xattr_get()</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="tappro">Mikhail Pershin</assignee>
                                    <reporter username="tappro">Mikhail Pershin</reporter>
                        <labels>
                    </labels>
                <created>Tue, 7 Jan 2020 09:15:24 +0000</created>
                <updated>Sat, 18 Jan 2020 14:59:32 +0000</updated>
                            <resolved>Sat, 18 Jan 2020 14:59:32 +0000</resolved>
                                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="260668" author="gerrit" created="Tue, 7 Jan 2020 09:58:56 +0000"  >&lt;p&gt;Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/37148&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37148&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13115&quot; title=&quot;always check object existence after mo_xattr_get()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13115&quot;&gt;&lt;del&gt;LU-13115&lt;/del&gt;&lt;/a&gt; mdt: handle mdt_pack_sectx_in_reply() errors&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d0ea6ecb63e565c41e28e0f22d1b4ef41617bae9&lt;/p&gt;</comment>
                            <comment id="261470" author="gerrit" created="Sat, 18 Jan 2020 04:04:00 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/37148/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37148/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13115&quot; title=&quot;always check object existence after mo_xattr_get()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13115&quot;&gt;&lt;del&gt;LU-13115&lt;/del&gt;&lt;/a&gt; mdt: handle mdt_pack_sectx_in_reply() errors&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 732ed22bdb6ca6abe8896f24e7ba46eea3fc379d&lt;/p&gt;</comment>
                            <comment id="261485" author="pjones" created="Sat, 18 Jan 2020 14:59:32 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="57218">LU-12895</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|i00rm7:</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>
                                                                                            <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>