<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:15:38 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-15122] Lustre ASSERTION( iobuf-&gt;dr_rw == 0 ) crash on Arm server end</title>
                <link>https://jira.whamcloud.com/browse/LU-15122</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;It is easy to enconter bellow crash when running some tests on Arm all-in-one(server and client) test evironment. Tests such as fsx tests: sanityn 16a, 16b etc.&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;
[57580.041008] Lustre: DEBUG MARKER: -----============= acceptance-small: sanityn ============----- Tue Oct 12 02:22:12 UTC 2021
[57580.414512] Lustre: DEBUG MARKER: excepting tests: 28
[57580.528887] Lustre: Mounted lustre-client
[57580.868328] Lustre: DEBUG MARKER: beegfs-test-01.novalocal: executing check_config_client /mnt/lustre
[57581.696557] Lustre: DEBUG MARKER: Using TIMEOUT=20
[57581.854832] Lustre: Modifying parameter general.*.*.lbug_on_grant_miscount in log params
[57582.331371] Lustre: DEBUG MARKER: == sanityn test 16b: 12500 iterations of dual-mount fsx at small size ========================================================== 02:22:15 (1634005335)
[57585.485613] LustreError: 5594:0:(osd_io.c:538:osd_do_bio()) ASSERTION( iobuf-&amp;gt;dr_rw == 0 ) failed: page_idx 1, block_idx 16, i 13,start_blocks: 0, count: 29, npages: 2
[57585.488764] LustreError: 5594:0:(osd_io.c:538:osd_do_bio()) LBUG
[57585.490011] Pid: 5594, comm: ll_ost_io03_000 4.18.0-305.7.1.el8_lustre.aarch64 #1 SMP Mon Jul 19 08:24:26 UTC 2021
[57585.492109] Call Trace:
[57585.492633] [&amp;lt;0&amp;gt;] libcfs_call_trace+0xb8/0x118 [libcfs]
[57585.493719] [&amp;lt;0&amp;gt;] lbug_with_loc+0x60/0xa0 [libcfs]
[57585.494721] [&amp;lt;0&amp;gt;] osd_do_bio.constprop.21+0x6c4/0xcf8 [osd_ldiskfs]
[57585.496012] [&amp;lt;0&amp;gt;] osd_ldiskfs_map_write.constprop.20+0xb4/0xf0 [osd_ldiskfs]
[57585.497464] [&amp;lt;0&amp;gt;] osd_ldiskfs_map_inode_pages+0x66c/0x958 [osd_ldiskfs]
[57585.498880] [&amp;lt;0&amp;gt;] osd_write_commit+0x4fc/0xbb8 [osd_ldiskfs]
[57585.500047] [&amp;lt;0&amp;gt;] ofd_commitrw_write+0x658/0x1e68 [ofd]
[57585.501133] [&amp;lt;0&amp;gt;] ofd_commitrw+0x360/0xa18 [ofd]
[57585.502180] [&amp;lt;0&amp;gt;] tgt_brw_write+0x1624/0x2d90 [ptlrpc]
[57585.503299] [&amp;lt;0&amp;gt;] tgt_handle_request0+0xd0/0x978 [ptlrpc]
[57585.504466] [&amp;lt;0&amp;gt;] tgt_request_handle+0x7c0/0x1a38 [ptlrpc]
[57585.505663] [&amp;lt;0&amp;gt;] ptlrpc_server_handle_request+0x3bc/0x11e8 [ptlrpc]
[57585.507026] [&amp;lt;0&amp;gt;] ptlrpc_main+0xd28/0x15f0 [ptlrpc]
[57585.508034] [&amp;lt;0&amp;gt;] kthread+0x130/0x138
[57585.508861] [&amp;lt;0&amp;gt;] ret_from_fork+0x10/0x18
[57585.509697] Kernel panic - not syncing: LBUG
[57585.510570] CPU: 6 PID: 5594 Comm: ll_ost_io03_000 Kdump: loaded Tainted: P           OE    --------- -  - 4.18.0-305.7.1.el8_lustre.aarch64 #1
[57585.513181] Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015
[57585.514576] Call trace:
[57585.515080]  dump_backtrace+0x0/0x188
[57585.515826]  show_stack+0x24/0x30
[57585.516530]  dump_stack+0x9c/0xbc
[57585.517189]  panic+0x130/0x2f8
[57585.517802]  param_set_delay_minmax.isra.1+0x0/0xd0 [libcfs]
[57585.518972]  osd_do_bio.constprop.21+0x6c4/0xcf8 [osd_ldiskfs]
[57585.520204]  osd_ldiskfs_map_write.constprop.20+0xb4/0xf0 [osd_ldiskfs]
[57585.521607]  osd_ldiskfs_map_inode_pages+0x66c/0x958 [osd_ldiskfs]
[57585.522910]  osd_write_commit+0x4fc/0xbb8 [osd_ldiskfs]
[57585.524012]  ofd_commitrw_write+0x658/0x1e68 [ofd]
[57585.525023]  ofd_commitrw+0x360/0xa18 [ofd]
[57585.525982]  tgt_brw_write+0x1624/0x2d90 [ptlrpc]
[57585.527046]  tgt_handle_request0+0xd0/0x978 [ptlrpc]
[57585.528160]  tgt_request_handle+0x7c0/0x1a38 [ptlrpc]
[57585.529316]  ptlrpc_server_handle_request+0x3bc/0x11e8 [ptlrpc]
[57585.530622]  ptlrpc_main+0xd28/0x15f0 [ptlrpc]
[57585.531557]  kthread+0x130/0x138
[57585.532236]  ret_from_fork+0x10/0x18
[57585.533308] SMP: stopping secondary CPUs
[57585.539225] Starting crashdump kernel...
[57585.540042] Bye!

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>[&lt;a href=&apos;mailto:centos@beegfs-test-01&apos;&gt;centos@beegfs-test-01&lt;/a&gt; ~]$ lsb_release -a&lt;br/&gt;
LSB Version:    :core-4.1-aarch64:core-4.1-noarch&lt;br/&gt;
Distributor ID: CentOS&lt;br/&gt;
Description:    CentOS Linux release 8.3.2011&lt;br/&gt;
Release:        8.3.2011&lt;br/&gt;
Codename:       n/a&lt;br/&gt;
[&lt;a href=&apos;mailto:centos@beegfs-test-01&apos;&gt;centos@beegfs-test-01&lt;/a&gt; ~]$ uname -a&lt;br/&gt;
Linux beegfs-test-01.novalocal 4.18.0-305.7.1.el8_lustre.aarch64 #1 SMP Mon Jul 19 08:24:26 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux&lt;br/&gt;
[&lt;a href=&apos;mailto:centos@beegfs-test-01&apos;&gt;centos@beegfs-test-01&lt;/a&gt; ~]$&lt;br/&gt;
</environment>
        <key id="66713">LU-15122</key>
            <summary>Lustre ASSERTION( iobuf-&gt;dr_rw == 0 ) crash on Arm server end</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="xinliang">Xinliang Liu</assignee>
                                    <reporter username="xinliang">Xinliang Liu</reporter>
                        <labels>
                            <label>arm</label>
                            <label>arm-server</label>
                    </labels>
                <created>Mon, 18 Oct 2021 03:22:59 +0000</created>
                <updated>Sat, 20 Nov 2021 14:47:52 +0000</updated>
                            <resolved>Sat, 20 Nov 2021 14:47:52 +0000</resolved>
                                    <version>Upstream</version>
                                    <fixVersion>Lustre 2.15.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="315817" author="xinliang" created="Mon, 18 Oct 2021 03:38:59 +0000"  >&lt;p&gt;Add some print msgs in the blocks[] array assignment and grab the kernel log.&lt;/p&gt;

&lt;p&gt;It seems the blocks[] array access is exceeding the assignment size.&lt;/p&gt;

&lt;p&gt;Kernel msgs printing patch:&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;
--- a/lustre/osd-ldiskfs/osd_io.c
+++ b/lustre/osd-ldiskfs/osd_io.c
@@ -1143,6 +1150,7 @@ cont_map: &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; osd_ldiskfs_map_inode_pages(struct inode *inode, ## Assignment function
                         * want to avoid that as much as possible.
                         */
                        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (oh-&amp;gt;oh_declared_ext &amp;lt;= 0) {
+                                CDEBUG(D_OTHER,&lt;span class=&quot;code-quote&quot;&gt;&quot;call osd_ldiskfs_map_write here!!\n&quot;&lt;/span&gt;);
                                rc = osd_ldiskfs_map_write(inode,
                                        iobuf, osd, start_blocks,
                                        count, &amp;amp;disk_size, user_size);

@@ -1188,6 +1198,18 @@ cont_map:
                        rc = 0;
                }+               &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (create &amp;amp;&amp;amp; iobuf-&amp;gt;dr_rw) {
+                CDEBUG(D_OTHER,&lt;span class=&quot;code-quote&quot;&gt;&quot;Page_index=%lu: rc=%d, (blen=%ld, total=%ld, m_len=%d), blocks:{\n&quot;&lt;/span&gt;,
+                                fp-&amp;gt;index, ret, blen, total, map.m_len);
+                &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (c=0; c &amp;lt; total; c++){
+                        unsigned &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; value =  *(blocks + c);
+                        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (value == 0)
+                                CDEBUG(D_OTHER,&lt;span class=&quot;code-quote&quot;&gt;&quot;blocks[%d]=%llu \n&quot;&lt;/span&gt;, c, value);
+                }
+                CDEBUG(D_OTHER,&lt;span class=&quot;code-quote&quot;&gt;&quot;}\n&quot;&lt;/span&gt;);
+                }
+
+

--- a/lustre/osd-ldiskfs/osd_io.c
+++ b/lustre/osd-ldiskfs/osd_io.c
@@ -530,12 +530,17 @@ &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; osd_do_bio(struct osd_device *osd, struct inode *inode,
                        nblocks = 1;                        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (blocks[block_idx + i] == 0) {  &lt;span class=&quot;code-comment&quot;&gt;/* hole */&lt;/span&gt;
-                               LASSERTF(iobuf-&amp;gt;dr_rw == 0,
-                                        &lt;span class=&quot;code-quote&quot;&gt;&quot;page_idx %u, block_idx %u, i %u,&quot;&lt;/span&gt;
-                                        &lt;span class=&quot;code-quote&quot;&gt;&quot;start_blocks: %llu, count: %llu, npages: %d\n&quot;&lt;/span&gt;,
-                                        page_idx, block_idx, i,
-                                        (unsigned &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt;)start_blocks,
-                                        (unsigned &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt;)count, npages);
+                               &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (iobuf-&amp;gt;dr_rw == 1) {
+                                       CDEBUG(D_OTHER,&lt;span class=&quot;code-quote&quot;&gt;&quot;Write with hole!!: blocks[%d]=0, iobuf_line=%d, iobuf_error=%d,&quot;&lt;/span&gt;
+                                                &lt;span class=&quot;code-quote&quot;&gt;&quot;page_idx %u, block_idx %u, i %u,&quot;&lt;/span&gt;
+                                                &lt;span class=&quot;code-quote&quot;&gt;&quot;start_blocks: %llu, count: %llu, npages: %d\n&quot;&lt;/span&gt;,
+                                                block_idx + i, iobuf-&amp;gt;dr_init_at, iobuf-&amp;gt;dr_error,
+                                                page_idx, block_idx, i,
+                                                (unsigned &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt;)start_blocks,
+                                                (unsigned &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;long&lt;/span&gt;)count, npages);
+                                       rc = -EFBIG;
+                                       &lt;span class=&quot;code-keyword&quot;&gt;goto&lt;/span&gt; out;
+                               }
                                memset(kmap(page) + page_offset, 0, blocksize);
                                kunmap(page);
                                &lt;span class=&quot;code-keyword&quot;&gt;continue&lt;/span&gt;;

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Kernel log:&#160;&lt;/p&gt;

&lt;p&gt;blocks[] array assignment size is 25(see total var), so blocks&lt;span class=&quot;error&quot;&gt;&amp;#91;25&amp;#93;&lt;/span&gt; exceeds the assignment size.&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;
(osd_io.c:1093:osd_ldiskfs_map_inode_pages()) inode 104: map 2 pages from 22
(osd_io.c:1095:osd_ldiskfs_map_inode_pages()) Enter inode 104: create:1, is_write:1 =======&amp;gt;
(osd_io.c:1203:osd_ldiskfs_map_inode_pages()) Page_index=22: rc=25, (blen=32, total=25, m_len=25), blocks:{
(osd_io.c:1209:osd_ldiskfs_map_inode_pages()) }
(osd_io.c:1153:osd_ldiskfs_map_inode_pages()) call osd_ldiskfs_map_write here!!
(osd_io.c:503:osd_do_bio()) &lt;span class=&quot;code-object&quot;&gt;Process&lt;/span&gt; entered
(osd_io.c:426:osd_bio_init()) &lt;span class=&quot;code-object&quot;&gt;Process&lt;/span&gt; entered
(osd_io.c:449:osd_bio_init()) &lt;span class=&quot;code-object&quot;&gt;Process&lt;/span&gt; leaving (rc=0 : 0 : 0)
(osd_io.c:540:osd_do_bio()) Write with hole!!: blocks[25]=0, iobuf_line=1593, iobuf_error=0,page_idx 1, block_idx 16, i 9,start_blocks: 0, count: 25, npages: 2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="315952" author="gerrit" created="Tue, 19 Oct 2021 09:35:06 +0000"  >&lt;p&gt;&quot;xinliang &amp;lt;xinliang.liu@linaro.org&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/45288&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/45288&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15122&quot; title=&quot;Lustre ASSERTION( iobuf-&amp;gt;dr_rw == 0 ) crash on Arm server end&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15122&quot;&gt;&lt;del&gt;LU-15122&lt;/del&gt;&lt;/a&gt; ldiskfs: Fix ASSERTION( iobuf-&amp;gt;dr_rw == 0 ) crash on arm&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6c695e86b8418a3b821062adf58000b5c47dcb69&lt;/p&gt;</comment>
                            <comment id="318741" author="gerrit" created="Sat, 20 Nov 2021 06:26:24 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/45288/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/45288/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15122&quot; title=&quot;Lustre ASSERTION( iobuf-&amp;gt;dr_rw == 0 ) crash on Arm server end&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15122&quot;&gt;&lt;del&gt;LU-15122&lt;/del&gt;&lt;/a&gt; osd-ldiskfs: Fix ASSERTION( iobuf-&amp;gt;dr_rw == 0 ) with 64KB PAGE_SIZE&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: ec03ee091f931125f3bbeb3628b0c5aaa4709930&lt;/p&gt;</comment>
                            <comment id="318781" author="pjones" created="Sat, 20 Nov 2021 14:47:52 +0000"  >&lt;p&gt;Landed for 2.15&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="54310">LU-11787</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_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>ldiskfs</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i027mn:</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>