<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:59:49 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-6392] short read/write with stripe count &gt; 1</title>
                <link>https://jira.whamcloud.com/browse/LU-6392</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We are currently hitting an issue on several Lustre filesystems. When we do POSIX IO to/from the Lustre FS, we have a lot of short write/read.&lt;/p&gt;

&lt;p&gt;This is easily reproductible with IOR, with one client, one thread, using a transferSize &amp;gt; lustreStripeSize and a lustreStripeCount &amp;gt; 1. However, we were only able to reproduce on 4 of 7 Lustre filesystems.&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;$ mkdir run_s2
$ lfs setstripe -c 2 -s 1m run_s2/
$ mpirun -n 16  bin/ior  -F -i 4  -t 2m -b 2g  -k -K  -o run_s2/file_s2

IOR-3.0.1: MPI Coordinated Test of Parallel I/O
Began: Thu Mar 19 16:32:39 2015
Command line used: bin/ior -F -i 4 -t 2m -b 2g -k -K -o run_s2/file_s2
Machine: Linux airain1487
Test 0 started: Thu Mar 19 16:32:39 2015
Summary:
    api                = POSIX
    test filename      = run_s2/file_s2
    access             = file-per-process
    ordering in a file = sequential offsets
    ordering inter file= no tasks offsets
    clients            = 16 (16 per node)
    repetitions        = 10
    xfersize           = 2 MiB
    blocksize          = 2 GiB
    aggregate filesize = 32 GiB

access    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iteraccess    bw(MiB/s)  block(KiB) xfer(KiB)  open(s)    wr/rd(s)   close(s)   total(s)   iter
------    ---------  ---------- ---------  --------   --------   --------   --------   ----
write     1961.78    2097152    2048.00    0.017310   16.70      10.10      16.70      0   
read      21425      2097152    2048.00    0.009623   1.53       0.109189   1.53       0   
write     2718.68    2097152    2048.00    0.016170   12.05      4.25       12.05      1   
read      17611      2097152    2048.00    0.010240   1.85       1.45       1.86       1   
write     2973.64    2097152    2048.00    0.023313   11.02      4.05       11.02      2   
read      20168      2097152    2048.00    0.008476   1.62       0.072408   1.62       2   
WARNING: Task 13, partial write(), 1048576 of 2097152 bytes at offset 2038431744 ERRNO=Success
write     2112.16    2097152    2048.00    0.025717   15.51      6.66       15.51      3   
read      12864      2097152    2048.00    0.008304   2.54       2.07       2.55       3   
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Cluster 1: 480 OST / default stripecount=2 stripesize=1M&lt;br/&gt;
Cluster 2: 144 OST / default stripecount=2 stripesize=1M&lt;/p&gt;

&lt;p&gt;It looks realy close to &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6389&quot; title=&quot;read()/write() returning less than available bytes intermittently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6389&quot;&gt;&lt;del&gt;LU-6389&lt;/del&gt;&lt;/a&gt;. We tried its reproducer with success.&lt;/p&gt;

&lt;p&gt;I did some tests with debug vfstrace, dlmtrace and inode. Logs will be added to this ticket later. (customer is a blacksite)&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;clients            = 1 (1 per node)&lt;/li&gt;
	&lt;li&gt;xfersize           = 2 MiB&lt;/li&gt;
	&lt;li&gt;blocksize          = 2 GiB&lt;/li&gt;
	&lt;li&gt;aggregate filesize = 2 GiB&lt;/li&gt;
	&lt;li&gt;Lustre stripe size = 1 MiB&lt;/li&gt;
	&lt;li&gt;Lustre stripe count = 2&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;WARNING: Task 0, partial write(), 1048576 of 2097152 bytes at offset 987758592&lt;/p&gt;

&lt;p&gt;The short write seems to occur when we lose the layout lock for the file while writing the first stripe. Afterwards, the IO can&apos;t continue with the second stripe and the write end.&lt;/p&gt;

&lt;p&gt;-&amp;gt;&amp;gt; seek to offset 987758592&lt;br/&gt;
-&amp;gt;&amp;gt; io range 987758592, 989855744 = 2M (transfer size)&lt;br/&gt;
-&amp;gt;&amp;gt; stripe 942, chunk 987758592, 988807168 = 1M (stripe size)&lt;br/&gt;
-&amp;gt;&amp;gt; 942 * 1M = 987758592, everything is fine&lt;br/&gt;
-&amp;gt;&amp;gt; vvp_io_write_start 987758592, 988807168&lt;br/&gt;
-&amp;gt;&amp;gt; n * vvp_io_commit_write() commits the 4k pages&lt;/p&gt;

&lt;p&gt;During the commit, we can observe ldlm_cli_cancel_local(), followed by the message &quot;vvp_conf_set() &lt;span class=&quot;error&quot;&gt;&amp;#91;0x298c28d7a:0xac:0x0&amp;#93;&lt;/span&gt;: losing layout lock&quot;. Then come the next stripe.&lt;/p&gt;

&lt;p&gt;-&amp;gt;&amp;gt; stripe 943, chunk 988807168, 989855744 = 1M (stripe size)&lt;br/&gt;
-&amp;gt;&amp;gt; no vvp_io_write_start() after because of lock cancellation&lt;/p&gt;</description>
                <environment>RHEL 6.5, kernel 2.6.32-431.29.2.el6.Bull.58.x86_64, Lustre 2.5.3 (w/ and w/o Bullpatches)&lt;br/&gt;
RHEL 6.6, kernel 2.6.32-504.3.3.el6.Bull.68.x86_64, Lustre 2.5.3 w/ Bullpatches</environment>
        <key id="29186">LU-6392</key>
            <summary>short read/write with stripe count &gt; 1</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="3">Duplicate</resolution>
                                        <assignee username="bobijam">Zhenyu Xu</assignee>
                                    <reporter username="bruno.travouillon">Bruno Travouillon</reporter>
                        <labels>
                            <label>p4b</label>
                    </labels>
                <created>Fri, 20 Mar 2015 18:25:36 +0000</created>
                <updated>Mon, 21 Oct 2019 17:09:29 +0000</updated>
                            <resolved>Thu, 26 Mar 2015 02:26:37 +0000</resolved>
                                    <version>Lustre 2.5.3</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="110239" author="bruno.travouillon" created="Fri, 20 Mar 2015 18:26:49 +0000"  >&lt;p&gt;This ticket is mainly created to respect the process and to attach files for our case. However, it really seems to be duplicate of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6389&quot; title=&quot;read()/write() returning less than available bytes intermittently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6389&quot;&gt;&lt;del&gt;LU-6389&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="110241" author="pjones" created="Fri, 20 Mar 2015 19:23:11 +0000"  >&lt;p&gt;Thanks Bruno. We&apos;ll obviously need to confirm that this is indeed (as it appears to be) a duplicate.&lt;/p&gt;</comment>
                            <comment id="110654" author="bruno.travouillon" created="Wed, 25 Mar 2015 19:18:35 +0000"  >&lt;p&gt;This issue is of major importance for our customers. After reading the full thread of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6389&quot; title=&quot;read()/write() returning less than available bytes intermittently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6389&quot;&gt;&lt;del&gt;LU-6389&lt;/del&gt;&lt;/a&gt;, it is obvious that we are hitting the same issue, a loss of layout lock between two stripes in the same IO.&lt;/p&gt;

&lt;p&gt;We are waiting for review of &lt;a href=&quot;http://review.whamcloud.com/#/c/14160/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/14160/&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="110702" author="bobijam" created="Thu, 26 Mar 2015 02:26:37 +0000"  >&lt;p&gt;dup of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6389&quot; title=&quot;read()/write() returning less than available bytes intermittently&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6389&quot;&gt;&lt;del&gt;LU-6389&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="256752" author="gerrit" created="Mon, 21 Oct 2019 17:09:29 +0000"  >&lt;p&gt;Ben Evans (bevans@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36526&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36526&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6392&quot; title=&quot;short read/write with stripe count &amp;gt; 1&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6392&quot;&gt;&lt;del&gt;LU-6392&lt;/del&gt;&lt;/a&gt; hsm: perform mirror sync through HSM&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2e8191a5815864817ad01c8146f787af23ab5d42&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="29175">LU-6389</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="29175">LU-6389</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|hzx91j:</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>