<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:33:56 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-17255] dt_record_write()) ASSERTION( dt-&gt;do_body_ops-&gt;dbo_write ) </title>
                <link>https://jira.whamcloud.com/browse/LU-17255</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&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;[15148.368109] LustreError: 11399:0:(dt_object.c:532:dt_record_write()) ASSERTION( dt-&amp;gt;do_body_ops-&amp;gt;dbo_write ) failed: [0x240000401:0x2:0x0]
[15148.368823] LustreError: 11399:0:(dt_object.c:532:dt_record_write()) LBUG
[15148.369203] Pid: 11399, comm: tgt_recover_1 3.10.0-1160.49.1.el7_lustre.x86_64 #1 SMP Fri Jun 17 18:46:08 UTC 2022
[15148.369204] Call Trace:
[15148.369218] [&amp;lt;0&amp;gt;] libcfs_call_trace+0x90/0xf0 [libcfs]
[15148.369222] [&amp;lt;0&amp;gt;] lbug_with_loc+0x4c/0xa0 [libcfs]
[15148.369245] [&amp;lt;0&amp;gt;] dt_record_write+0xc2/0x130 [obdclass]
[15148.369288] [&amp;lt;0&amp;gt;] out_tx_write_exec+0x9d/0x370 [ptlrpc]
[15148.369319] [&amp;lt;0&amp;gt;] out_tx_end+0xe1/0x600 [ptlrpc]
[15148.369349] [&amp;lt;0&amp;gt;] out_handle+0x1baf/0x2420 [ptlrpc]
[15148.369378] [&amp;lt;0&amp;gt;] tgt_request_handle+0x883/0x19a0 [ptlrpc]
[15148.369409] [&amp;lt;0&amp;gt;] handle_recovery_req+0x93/0x3c0 [ptlrpc]
[15148.369438] [&amp;lt;0&amp;gt;] replay_request_or_update.isra.25+0x31c/0x9e0 [ptlrpc]
[15148.369466] [&amp;lt;0&amp;gt;] target_recovery_thread+0x7bc/0x13d0 [ptlrpc]
[15148.369469] [&amp;lt;0&amp;gt;] kthread+0xd1/0xe0
[15148.369472] [&amp;lt;0&amp;gt;] ret_from_fork_nospec_begin+0x21/0x21
[15148.369482] [&amp;lt;0&amp;gt;] 0xfffffffffffffffe
[15148.369483] Kernel panic - not syncing: LBUG
[15148.369831] CPU: 3 PID: 11399 Comm: tgt_recover_1 Kdump: loaded Tainted: G &#160; &#160; &#160; &#160; &#160; OE &#160;------------ &#160; 3.10.0-1160.49.1.el7_lustre.x86_64 #1
 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Accidentally reproduced it on the latest master working on the different problem with following test:&lt;/p&gt;
&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;[root@vm2 tests]# git log HEAD --pretty=short -n1
commit d7d16447a00be217246f1d73ecaf43a05a832442
Author: Alex Zhuravlev &amp;lt;bzzz@whamcloud.com&amp;gt;&#160; &#160; 

    LU-17188 mdt: remove n from LDLM_DEBUG
[root@vm2 tests]# git diff
diff --git a/lustre/tests/replay-dual.sh b/lustre/tests/replay-dual.sh
index 85836e6..de6a1e7 100755
--- a/lustre/tests/replay-dual.sh
+++ b/lustre/tests/replay-dual.sh
@@ -1322,6 +1322,26 @@ test_33() { # LU-15935
&#160;}
&#160;run_test 33 &quot;Check for OBD_INCOMPAT_MULTI_RPCS in last_rcvd after abort_recovery&quot;
&#160;
+test_34() {
+ &#160; &#160; &#160; lfs mkdir -i 0 /mnt/lustre/dir
+ &#160; &#160; &#160; for i in `seq 1 100`;
+ &#160; &#160; &#160; do
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; replay_barrier mds2
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; lfs getdirstripe /mnt/lustre/dir
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; dd if=/dev/urandom of=/mnt/lustre/dir/f$i bs=1M count=2
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; dd if=/dev/urandom of=/mnt/lustre/dir/f2$i bs=1M count=2
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; lfs getstripe -v /mnt/lustre/dir/f$i
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; lfs getstripe -v /mnt/lustre/dir/f2$i
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; lfs migrate -m $((i%2)) /mnt/lustre/dir #migrate to 0 or 1
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; rm -f /mnt/lustre/dir/f$i
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; rm -f /mnt/lustre/dir/f$i2
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; facet_failover mds2
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; lctl dk &amp;gt; logs$i
+ &#160; &#160; &#160; &#160; &#160; &#160; &#160; ls -aslh /mnt/lustre/dir | grep &quot;????&quot; &amp;amp;&amp;amp; break
+ &#160; &#160; &#160; done
+}
+run_test 34 &quot;bla bla&quot;
+ &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;How to reproduce:&lt;/p&gt;
&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;[root@vm2 tests]# MDSCOUNT=2 bash ./llmount.sh
...
[root@vm2 tests]# ONLY=34 bash ./replay-dual.sh &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="78740">LU-17255</key>
            <summary>dt_record_write()) ASSERTION( dt-&gt;do_body_ops-&gt;dbo_write ) </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="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="scherementsev">Sergey Cheremencev</reporter>
                        <labels>
                    </labels>
                <created>Thu, 2 Nov 2023 12:58:18 +0000</created>
                <updated>Wed, 31 Jan 2024 16:52:32 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="391474" author="sergey" created="Thu, 2 Nov 2023 13:06:33 +0000"  >&lt;p&gt;From the crash dump:&lt;/p&gt;
&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;crash&amp;gt; dt_object ffff965171950500
struct dt_object {
&#160; do_lu = {
&#160; &#160; lo_header = 0xffff964fcae9abd0,&#160;
&#160; &#160; lo_dev = 0xffff96516fd68000,&#160;
&#160; &#160; lo_ops = 0xffffffffc10ec3a0 &amp;lt;osd_lu_obj_ops&amp;gt;,&#160;
&#160; &#160; lo_linkage = {
&#160; &#160; &#160; next = 0xffff964fcae9ac08,&#160;
&#160; &#160; &#160; prev = 0xffff965170784c90
&#160; &#160; },&#160;
&#160; &#160; lo_dev_ref = {&amp;lt;No data fields&amp;gt;}
&#160; },&#160;
&#160; do_ops = 0xffffffffc10ec280 &amp;lt;osd_obj_ops&amp;gt;,&#160;
&#160; do_body_ops = 0xffffffffc10ed4e0 &amp;lt;osd_body_ops_new&amp;gt;,&#160;
&#160; do_index_ops = 0x0
} crash&amp;gt; p *((struct dt_object *)0xffff965171950500)-&amp;gt;do_body_ops
$4 = {
&#160; dbo_read = 0x0,&#160;
&#160; dbo_declare_write = 0xffffffffc10d1fa0 &amp;lt;osd_declare_write&amp;gt;,&#160;
&#160; dbo_write = 0x0,&#160;
&#160; dbo_bufs_get = 0x0,&#160;
&#160; dbo_bufs_put = 0x0,&#160;
&#160; dbo_read_prep = 0x0,&#160;
&#160; dbo_write_prep = 0x0,&#160;
&#160; dbo_declare_write_commit = 0x0,&#160;
&#160; dbo_write_commit = 0x0,&#160;
&#160; dbo_fiemap_get = 0x0,&#160;
&#160; dbo_declare_punch = 0x0,&#160;
&#160; dbo_punch = 0x0,&#160;
&#160; dbo_ladvise = 0x0,&#160;
&#160; dbo_declare_fallocate = 0x0,&#160;
&#160; dbo_fallocate = 0x0,&#160;
&#160; dbo_lseek = 0x0
}
 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It seems do_body_ops was not initialized with &quot;osd_body_ops&quot;:&lt;/p&gt;
&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;  &#160; &#160; &#160; obj-&amp;gt;oo_dt.do_body_ops = &amp;amp;osd_body_ops_new;
&#160; &#160; &#160; &#160; if (result == 0 &amp;amp;&amp;amp; obj-&amp;gt;oo_inode != NULL) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; struct osd_thread_info *oti = osd_oti_get(env);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; struct lustre_ost_attrs *loa = &amp;amp;oti-&amp;gt;oti_ost_attrs;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; osd_object_init0(obj);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if (unlikely(obj-&amp;gt;oo_header))
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; return 0;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; result = osd_get_lma(oti, obj-&amp;gt;oo_inode,
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&amp;amp;oti-&amp;gt;oti_obj_dentry, loa);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if (!result) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; /*
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;* Convert LMAI flags to lustre LMA flags
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;* and cache it to oo_lma_flags
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;*/
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; obj-&amp;gt;oo_lma_flags =
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; lma_to_lustre_flags(loa-&amp;gt;loa_lma.lma_incompat);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; } else if (result == -ENODATA) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; result = 0;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; } &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="391495" author="bzzz" created="Thu, 2 Nov 2023 15:04:01 +0000"  >&lt;p&gt;what branch do you hit this with ?&lt;/p&gt;</comment>
                            <comment id="391496" author="sergey" created="Thu, 2 Nov 2023 15:10:06 +0000"  >&lt;blockquote&gt;&lt;p&gt;what branch do you hit this with ?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;master&lt;/p&gt;
&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;[root@vm2 tests]# git log HEAD --pretty=short -n1
commit d7d16447a00be217246f1d73ecaf43a05a832442
Author: Alex Zhuravlev &amp;lt;bzzz@whamcloud.com&amp;gt;&#160; &#160; 

    LU-17188 mdt: remove n from LDLM_DEBUG &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="393130" author="bzzz" created="Wed, 15 Nov 2023 13:20:15 +0000"  >&lt;blockquote&gt;&lt;p&gt;It seems do_body_ops was not initialized with &quot;osd_body_ops&quot;:&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;it is initialized when/if object exists&lt;/p&gt;</comment>
                            <comment id="393275" author="bzzz" created="Thu, 16 Nov 2023 17:14:09 +0000"  >&lt;p&gt;that&apos;s because MDSCOUNT=2 is not set for replay-dual, thus few variables configuring MDS2 were set propely in t-f and then:&lt;br/&gt;
do_facet mds2 /mnt/build/lustre/utils/lctl --device  notransno is called with empty device.&lt;br/&gt;
as a result MDS2 keeps reporting transactions committed while the underlying device were ignoring writes.&lt;/p&gt;</comment>
                            <comment id="393276" author="bzzz" created="Thu, 16 Nov 2023 17:15:30 +0000"  >&lt;p&gt;IMO, this is not a bug in Lustre, rather a problem in the testing infrastructure.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="63086">LU-15139</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|i040fr:</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>