<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:30:19 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-3026] Failure on test suite sanity-benchmark test_iozone</title>
                <link>https://jira.whamcloud.com/browse/LU-3026</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;This issue was created by maloo for sarah &amp;lt;sarah@whamcloud.com&amp;gt;&lt;/p&gt;

&lt;p&gt;This issue relates to the following test suite run: &lt;a href=&quot;https://maloo.whamcloud.com/test_sets/898c8c02-94ba-11e2-93c6-52540035b04c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://maloo.whamcloud.com/test_sets/898c8c02-94ba-11e2-93c6-52540035b04c&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The sub-test test_iozone failed with the following error:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;iozone (1) failed&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I will try to reproduce this issue manually to get more information&lt;/p&gt;</description>
                <environment></environment>
        <key id="18085">LU-3026</key>
            <summary>Failure on test suite sanity-benchmark test_iozone</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</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="jay">Jinshan Xiong</assignee>
                                    <reporter username="maloo">Maloo</reporter>
                        <labels>
                            <label>HB</label>
                    </labels>
                <created>Mon, 25 Mar 2013 17:39:51 +0000</created>
                <updated>Tue, 9 Apr 2013 00:10:55 +0000</updated>
                            <resolved>Tue, 9 Apr 2013 00:10:55 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                                    <fixVersion>Lustre 2.4.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="54809" author="keith" created="Tue, 26 Mar 2013 00:13:22 +0000"  >&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;	Processor cache line size set to 32 bytes.
	File stride size set to 17 * record size.
                                                            random  random    bkwd   record   stride                                   
              KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
         3845408     512

Sanity check failed. Do not deploy this filesystem in a production environment !
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It seems iozone detected some stability issue in the FS.  5.00% of last 100 executions&lt;/p&gt;</comment>
                            <comment id="55040" author="pjones" created="Thu, 28 Mar 2013 18:26:32 +0000"  >&lt;p&gt;Minh&lt;/p&gt;

&lt;p&gt;Could you please see if you are able to reproduce this and provide more data?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="55041" author="sarah" created="Thu, 28 Mar 2013 18:28:59 +0000"  >&lt;p&gt;Also seen in DNE testing(1MDS/2MDTs)&lt;br/&gt;
&lt;a href=&quot;https://maloo.whamcloud.com/test_sets/872b7398-9658-11e2-9abb-52540035b04c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://maloo.whamcloud.com/test_sets/872b7398-9658-11e2-9abb-52540035b04c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55063" author="keith" created="Fri, 29 Mar 2013 00:20:11 +0000"  >&lt;p&gt;U-3060 After upgrade from 1.8.9 to 2.4, hit FAIL: iozone did not fail with EDQUOT&lt;/p&gt;

&lt;p&gt;Looks to be the same issue in a different context? &lt;/p&gt;</comment>
                            <comment id="55092" author="mdiep" created="Fri, 29 Mar 2013 15:53:59 +0000"  >&lt;p&gt;Initially, this looks like &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2909&quot; title=&quot;Failure on test suite sanity-benchmark test_fsx: fsx bus error, core dumped&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2909&quot;&gt;&lt;del&gt;LU-2909&lt;/del&gt;&lt;/a&gt;. I am going to reproduce this and apply the patch to see if it fixes.&lt;/p&gt;</comment>
                            <comment id="55127" author="mdiep" created="Sat, 30 Mar 2013 00:31:59 +0000"  >&lt;p&gt;I&apos;ve done more runs and found that iozone only fail in auster run which use sanityusr to run. It passed when iozone run as root.&lt;/p&gt;

&lt;p&gt;A look at the iozone source found that ftruncate on a 0-byte file failed. I wrote a little program below to confirm this issue. If we run the executable as non-root, it will fail with &quot;permission denied&quot;. This seem like a layout lock issue.&lt;/p&gt;


&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;sys/types.h&amp;gt;
#include &amp;lt;sys/stat.h&amp;gt;
#include &amp;lt;fcntl.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

#define string_len 0

main() {
  &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;  file_descriptor;
  &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; fn[]=&lt;span class=&quot;code-quote&quot;&gt;&quot;write.file&quot;&lt;/span&gt;;
  struct stat st;

  &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ((file_descriptor = open(fn, (&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;)O_CREAT|O_WRONLY,0)) &amp;lt; 0)
    perror(&lt;span class=&quot;code-quote&quot;&gt;&quot;creat() error&quot;&lt;/span&gt;);
  &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
      &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ftruncate(file_descriptor, 0) != 0)
        perror(&lt;span class=&quot;code-quote&quot;&gt;&quot;ftruncate() error&quot;&lt;/span&gt;);
      &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
        fstat(file_descriptor, &amp;amp;st);
        printf(&lt;span class=&quot;code-quote&quot;&gt;&quot;the file has %ld bytes\n&quot;&lt;/span&gt;, (&lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt;) st.st_size);
      } 
    close(file_descriptor);
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;~     &lt;/p&gt;</comment>
                            <comment id="55196" author="jay" created="Mon, 1 Apr 2013 16:47:32 +0000"  >&lt;p&gt;It turns out this is a problem of permission check on the MDT where __mdd_permission_internal() returns -EACCES because the file was created without access mode setting correctly.&lt;/p&gt;

&lt;p&gt;We can fix this problem by bypassing permission check on the MDT if it the permission check passed with file handler on the client side.&lt;/p&gt;</comment>
                            <comment id="55355" author="mdiep" created="Wed, 3 Apr 2013 05:13:01 +0000"  >&lt;p&gt;I have tracked this down to &lt;a href=&quot;https://build.whamcloud.com/job/lustre-master/1334/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://build.whamcloud.com/job/lustre-master/1334/&lt;/a&gt; start breaking iozone&lt;/p&gt;</comment>
                            <comment id="55364" author="jay" created="Wed, 3 Apr 2013 07:14:48 +0000"  >&lt;p&gt;patch is at here: &lt;a href=&quot;http://review.whamcloud.com/5924&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/5924&lt;/a&gt;, this is imported by bb68e4c1.&lt;/p&gt;</comment>
                            <comment id="55408" author="mdiep" created="Wed, 3 Apr 2013 17:51:29 +0000"  >&lt;p&gt;I verified that the patch worked on iozone&lt;/p&gt;</comment>
                            <comment id="55585" author="bzzz" created="Fri, 5 Apr 2013 07:32:31 +0000"  >&lt;p&gt;&amp;gt; It turns out this is a problem of permission check on the MDT where __mdd_permission_internal() returns -EACCES because the file was created without access mode setting correctly.&lt;/p&gt;

&lt;p&gt;was created without access mode setting correctly? please clarify on this.&lt;/p&gt;</comment>
                            <comment id="55761" author="jay" created="Mon, 8 Apr 2013 16:42:20 +0000"  >&lt;blockquote&gt;
&lt;p&gt;was created without access mode setting correctly? please clarify on this.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Reproduce program is there, please try it.&lt;/p&gt;</comment>
                            <comment id="55762" author="bzzz" created="Mon, 8 Apr 2013 16:43:33 +0000"  >&lt;p&gt;well, I was rather asking for a better explanation..&lt;/p&gt;</comment>
                            <comment id="55772" author="jay" created="Mon, 8 Apr 2013 18:06:37 +0000"  >&lt;p&gt;ah I thought you&apos;re questioning how the file was created.&lt;/p&gt;

&lt;p&gt;For VFS, ftruncate does permission check by file&apos;s f_mode, since the file was created with O_WRONLY so it can pass w/o any problem. However, we do permission check on the MDT by inode mode which is not set at all.&lt;/p&gt;

&lt;p&gt;Ideally we should pass along file&apos;s mode but I choose to set MDS_OWNEROVERRIDE which seems easier. But I don&apos;t understand the code in mdd_fix_attr():&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (la-&amp;gt;la_valid &amp;amp; (LA_SIZE | LA_BLOCKS)) {
                        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!((flags &amp;amp; MDS_OWNEROVERRIDE) &amp;amp;&amp;amp;
                              (uc-&amp;gt;uc_fsuid == tmp_la-&amp;gt;la_uid)) &amp;amp;&amp;amp;
                            !(flags &amp;amp; MDS_PERM_BYPASS)) {
                                rc = mdd_permission_internal(env, obj,
                                                             tmp_la, MAY_WRITE);
                                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc != 0)
                                        RETURN(rc);
                        }
                }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;why it checks permission only if size and blocks are going to changed.&lt;/p&gt;</comment>
                            <comment id="55774" author="bzzz" created="Mon, 8 Apr 2013 18:17:23 +0000"  >&lt;p&gt;are you saying iozone changes file&apos;s rights or own uid/gid once the file is open? if, so then the patch should be OK.&lt;/p&gt;

&lt;p&gt;given we do not pass openhandle to setattr, passing f_mode to MDS is not any better than MDS_OWNEROVERRIDE, but more code.&lt;/p&gt;

&lt;p&gt;the code pasted above seem to be solving this specific problem - to let process passed permission checks in open to be able to modify the file even if the actual rights have changed.&lt;/p&gt;

&lt;p&gt;would be good to mention the case in the code or in the patch.&lt;/p&gt;</comment>
                            <comment id="55781" author="jay" created="Mon, 8 Apr 2013 18:59:21 +0000"  >&lt;blockquote&gt;
&lt;p&gt;are you saying iozone changes file&apos;s rights or own uid/gid once the file is open? if, so then the patch should be OK.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;No, there is no changing mode after file is opened. The file is created with O_WRONLY but mode is not set in open(2).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the code pasted above seem to be solving this specific problem - to let process passed permission checks in open to be able to modify the file even if the actual rights have changed.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;To be honest, I don&apos;t think it can pass permission check in anyways. However, changing rights after opening the file is a tricky case so I&apos;m okay with the current code&lt;/p&gt;</comment>
                            <comment id="55782" author="bzzz" created="Mon, 8 Apr 2013 19:02:24 +0000"  >&lt;p&gt;&amp;gt; No, there is no changing mode after file is opened. The file is created with O_WRONLY but mode is not set in open(2).&lt;/p&gt;

&lt;p&gt;hmm, then why current rights is not enough to proceed?&lt;/p&gt;</comment>
                            <comment id="55784" author="jay" created="Mon, 8 Apr 2013 19:13:35 +0000"  >&lt;p&gt;The file is created w/o mode:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@jupiter ~&amp;#93;&lt;/span&gt;# ls -l /mnt/lustre/ttt/write.file &lt;br/&gt;
---------- 1 root root 0 Apr  6 09:06 /mnt/lustre/ttt/write.file&lt;/p&gt;</comment>
                            <comment id="55785" author="bzzz" created="Mon, 8 Apr 2013 19:15:51 +0000"  >&lt;p&gt;ah, nice. thanks. then sure, MDS_OWNEROVERRIDE sounds correct.&lt;/p&gt;</comment>
                            <comment id="55786" author="bzzz" created="Mon, 8 Apr 2013 19:17:20 +0000"  >&lt;p&gt;oh, wait.. but this should apply only to ftruncate()? how do we make sure regular truncate() won&apos;t bypass the checks?&lt;/p&gt;</comment>
                            <comment id="55794" author="jay" created="Mon, 8 Apr 2013 19:39:55 +0000"  >&lt;p&gt;for truncate(), it won&apos;t pass in kernel check on the client side.&lt;/p&gt;</comment>
                            <comment id="55812" author="pjones" created="Tue, 9 Apr 2013 00:10:55 +0000"  >&lt;p&gt;Landed for 2.4&lt;/p&gt;</comment>
                    </comments>
                    <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|hzvm8v:</customfieldvalue>

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