<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:17:07 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-8388] LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) ASSERTION( 0 ) failed: LBUG </title>
                <link>https://jira.whamcloud.com/browse/LU-8388</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;stdout.log&lt;/li&gt;
&lt;/ul&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;# sh llmount.sh
Stopping clients: localhost.localdomain /mnt/lustre (opts:)
Stopping clients: localhost.localdomain /mnt/lustre2 (opts:)
Loading modules from /root/lustre-release/lustre/tests/..
detected 4 online CPUs by sysfs
Force libcfs to create 2 CPU partitions
../libcfs/libcfs/libcfs options: &apos;cpu_npartitions=2&apos;
debug=vfstrace rpctrace dlmtrace neterror ha config 		      ioctl super lfsck
subsystem_debug=all -lnet -lnd -pinger
../lnet/lnet/lnet options: &apos;networks=tcp(eth3) accept=all&apos;
gss/krb5 is not supported
quota/lquota options: &apos;hash_lqs_cur_bits=3&apos;
Formatting mgs, mds, osts
Format mds1: /tmp/lustre-mdt1
Format ost1: /tmp/lustre-ost1
Format ost2: /tmp/lustre-ost2
Checking servers environments
Checking clients localhost.localdomain environments
Loading modules from /root/lustre-release/lustre/tests/..
detected 4 online CPUs by sysfs
Force libcfs to create 2 CPU partitions
debug=vfstrace rpctrace dlmtrace neterror ha config 		      ioctl super lfsck
subsystem_debug=all -lnet -lnd -pinger
gss/krb5 is not supported
Setup mgs, mdt, osts
Starting mds1:   -o loop /tmp/lustre-mdt1 /mnt/lustre-mds1
Started lustre-MDT0000
Starting ost1:   -o loop /tmp/lustre-ost1 /mnt/lustre-ost1
Started lustre-OST0000
Starting ost2:   -o loop /tmp/lustre-ost2 /mnt/lustre-ost2
Started lustre-OST0001
Starting client: localhost.localdomain:  -o user_xattr,flock localhost.localdomain@tcp:/lustre /mnt/lustre
Using TIMEOUT=20
seting jobstats to procname_uid
Setting lustre.sys.jobid_var from disable to procname_uid
Waiting 90 secs for update
Updated after 8s: wanted &apos;procname_uid&apos; got &apos;procname_uid&apos;
disable quota as required
[root@localhost tests]#

[root@localhost tests]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              44G   31G   13G  72% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             2.0G  350M  1.6G  19% /boot
/dev/loop0            139M   18M  112M  14% /mnt/lustre-mds1
/dev/loop1            359M   30M  310M   9% /mnt/lustre-ost1
/dev/loop2            359M   30M  310M   9% /mnt/lustre-ost2
localhost.localdomain@tcp:/lustre
                      717M   59M  620M   9% /mnt/lustre
[root@localhost tests]#

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;lctl blockdev*&lt;/li&gt;
&lt;/ul&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@localhost lustre-release]# insmod lustre/llite/llite_lloop.ko
[root@localhost lustre-release]# MD=/mnt/; dd if=/dev/zero of=$MD/testfile bs=4096 count=5000; lctl blockdev_attach $MD/testfile /dev/loop3; lctl blockdev_info /dev/loop3
5000+0 records in
5000+0 records out
20480000 bytes (20 MB) copied, 0.244223 s, 83.9 MB/s
attach error(Inappropriate ioctl for device)
error: Invalid argument
[root@localhost lustre-release]#

[root@localhost lustre-release]# MD=/mnt/lustre; dd if=/dev/zero of=$MD/testfile bs=4096 count=5000; lctl blockdev_attach $MD/testfile loop3; lctl blockdev_info loop3
5000+0 records in
5000+0 records out
20480000 bytes (20 MB) copied, 1.13594 s, 18.0 MB/s

Message from syslogd@localhost at Jul 12 16:28:50 ...
 kernel:LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) ASSERTION( 0 ) failed: 

Message from syslogd@localhost at Jul 12 16:28:50 ...
 kernel:LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) LBUG
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;dmesg&lt;/li&gt;
&lt;/ul&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;1805 &amp;lt;4&amp;gt;Lustre: DEBUG MARKER: Using TIMEOUT=20
1806 &amp;lt;4&amp;gt;Lustre: 59548:0:(lloop.c:720:lloop_ioctl()) Enter llop_ioctl
1807 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_cache.c:2488:osc_teardown_async_page()) extent ffff8800871bdd08@{[4864 -&amp;gt; 4999/5119], [2|0|-|cache|wi|ffff880087763ea8], [581632|136|+|-|ffff8800877ffd00|256|(null)]} trunc      at 4864.
1808 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_cache.c:2488:osc_teardown_async_page()) ### extent: ffff8800871bdd08 ns: lustre-OST0001-osc-ffff880139dae800 lock: ffff8800877ffd00/0x8c9f98a4b6bd6cd1 lrc: 2/0,0 mode: PW/PW      res: [0x2:0x0:0x0].0x0 rrc: 1 type: EXT [0-&amp;gt;18446744073709551615] (req 0-&amp;gt;4095) flags: 0x20000000000 nid: local remote: 0x8c9f98a4b6bd6cd8 expref: -99 pid: 59546 timeout: 0 lvb_type: 1
1809 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) page@ffff88008328de00[2 ffff88008706eb38 4 1 (null)]
1810 &amp;lt;3&amp;gt;
1811 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) vvp-page@ffff88008328de50(0:0) vm@ffffea0001c901a0 2000000000083d 3:0 ffff88008328de00 4864 lru
1812 &amp;lt;3&amp;gt;
1813 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) lov-page@ffff88008328de90, raid0
1814 &amp;lt;3&amp;gt;
1815 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) osc-page@ffff88008328def8 4864: 1&amp;lt; 0x845fed 258 0 + - &amp;gt; 2&amp;lt; 19922944 0 4096 0x0 0x520 | (null) ffff88008829b4f0 ffff880087763ea8 &amp;gt; 3&amp;lt; 0 0 0 &amp;gt; 4&amp;lt;      0 0 8 21954560 - | - - + - &amp;gt; 5&amp;lt; - - + - | 0 - | 136 - -&amp;gt;
1816 &amp;lt;3&amp;gt;
1817 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) end page@ffff88008328de00
1818 &amp;lt;3&amp;gt;
1819 &amp;lt;3&amp;gt;LustreError: 59548:0:(osc_page.c:307:osc_page_delete()) Trying to teardown failed: -16
1820 &amp;lt;0&amp;gt;LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) ASSERTION( 0 ) failed:
1821 &amp;lt;0&amp;gt;LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) LBUG
1822 &amp;lt;4&amp;gt;Pid: 59548, comm: lctl
1823 &amp;lt;4&amp;gt;
1824 &amp;lt;4&amp;gt;Call Trace:
1825 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa0cb1875&amp;gt;] libcfs_debug_dumpstack+0x55/0x80 [libcfs]
1826 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa0cb1e77&amp;gt;] lbug_with_loc+0x47/0xb0 [libcfs]
1827 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa15cb4ae&amp;gt;] osc_page_delete+0x46e/0x4e0 [osc]
1828 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa113662d&amp;gt;] cl_page_delete0+0x7d/0x210 [obdclass]
1829 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa11367fd&amp;gt;] cl_page_delete+0x3d/0x110 [obdclass]
1830 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa0afc34d&amp;gt;] ll_invalidatepage+0x8d/0x160 [lustre]
1831 &amp;lt;4&amp;gt; [&amp;lt;ffffffff811372e5&amp;gt;] do_invalidatepage+0x25/0x30
1832 &amp;lt;4&amp;gt; [&amp;lt;ffffffff81137602&amp;gt;] truncate_inode_page+0xa2/0xc0
1833 &amp;lt;4&amp;gt; [&amp;lt;ffffffff811379af&amp;gt;] truncate_inode_pages_range+0x16f/0x500
1834 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8128596a&amp;gt;] ? kobject_get+0x1a/0x30
1835 &amp;lt;4&amp;gt; [&amp;lt;ffffffff81137dd5&amp;gt;] truncate_inode_pages+0x15/0x20
1836 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa0167900&amp;gt;] lloop_ioctl+0x5a0/0x780 [llite_lloop]
1837 &amp;lt;4&amp;gt; [&amp;lt;ffffffffa0acb267&amp;gt;] ll_file_ioctl+0x667/0x3eb0 [lustre]
1838 &amp;lt;4&amp;gt; [&amp;lt;ffffffff811865b1&amp;gt;] ? nameidata_to_filp+0x31/0x70
1839 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8119c3c8&amp;gt;] ? do_filp_open+0x798/0xd20
1840 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8119e972&amp;gt;] vfs_ioctl+0x22/0xa0
1841 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8119ee3a&amp;gt;] do_vfs_ioctl+0x3aa/0x580
1842 &amp;lt;4&amp;gt; [&amp;lt;ffffffff81196dd6&amp;gt;] ? final_putname+0x26/0x50
1843 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8119f091&amp;gt;] sys_ioctl+0x81/0xa0
1844 &amp;lt;4&amp;gt; [&amp;lt;ffffffff810e202e&amp;gt;] ? __audit_syscall_exit+0x25e/0x290
1845 &amp;lt;4&amp;gt; [&amp;lt;ffffffff8100b072&amp;gt;] system_call_fastpath+0x16/0x1b
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;@andreas&lt;br/&gt;
This is seen on my solo VM setup, I want to debug and give the fix for this, if its fine.&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;</description>
                <environment>2.8.55-85-g9d84696, Solo setup.</environment>
        <key id="38108">LU-8388</key>
            <summary>LustreError: 59548:0:(osc_page.c:308:osc_page_delete()) ASSERTION( 0 ) failed: LBUG </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="parinay">parinay v kondekar</reporter>
                        <labels>
                    </labels>
                <created>Tue, 12 Jul 2016 13:40:47 +0000</created>
                <updated>Tue, 23 Aug 2016 08:12:04 +0000</updated>
                                            <version>Lustre 2.9.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="160296" author="parinay" created="Fri, 29 Jul 2016 13:52:02 +0000"  >&lt;p&gt;The general call flow after ll_invalidatepage() is,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;cl_page_delete() &amp;#45;&amp;gt; cl_page_delete0() &amp;#45;&amp;gt; cl_page_state_set0()&amp;#45;&amp;gt; osc_page_delete()&amp;#45;&amp;gt; osc_teardown_async_page() -&amp;gt; cl_page_delete() returns&lt;br/&gt;
cl_page_put()-&amp;gt; cl_page_free()&lt;/p&gt;&lt;/blockquote&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;    363 /**
    364  * Releases a reference to a page.
    365  *
    366  * When last reference is released, page is returned to the cache, unless it
    367  * is in cl_page_state::CPS_FREEING state, in which case it is immediately
    368  * destroyed.
    369  *
    370  * \see cl_object_put(), cl_lock_put().
    371  */
    372 void cl_page_put(const struct lu_env *env, struct cl_page *page)

...
	378         if (atomic_dec_and_test(&amp;amp;page-&amp;gt;cp_ref)) {
    379                 LASSERT(page-&amp;gt;cp_state == CPS_FREEING);
    380          
    381                 LASSERT(atomic_read(&amp;amp;page-&amp;gt;cp_ref) == 0);
    382                 PASSERT(env, page, page-&amp;gt;cp_owner == NULL);
    383                 PASSERT(env, page, list_empty(&amp;amp;page-&amp;gt;cp_batch));
    384                 /* 
    385                  * Page is no longer reachable by other threads. Tear
    386                  * it down.
    387                  */
    388                 cl_page_free(env, page);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;During the last call to cl_page_put(), there page-&amp;gt;cp_ref is 3. Thus the function call to cl_page_free() is never called.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Debugging further, esp following questions,&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;1. In case of ASSERT the debug log show, the call to cl_page_put() after osc_page_delete instead of osc_teardown_async_page(), need to dig why this happened.&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;59839 00000020:00000001:3.0:1469110646.860984:0:4320:0:(cl_page.c:331:cl_page_state_set0()) 0 -&amp;gt; 4
59840 00000020:00000001:3.0:1469110646.860985:0:4320:0:(cl_page.c:338:cl_page_state_set0()) Process leaving
59841 00000008:00000001:3.0:1469110646.860986:0:4320:0:(osc_page.c:301:osc_page_delete()) Process entered
59842 00000008:00000001:3.0:1469110646.860987:0:4320:0:(osc_page.c:302:osc_page_delete()) ffff8800bd93d4f8
59843 00000020:00000001:3.0:1469110646.860989:0:4320:0:(cl_page.c:374:cl_page_put()) Process entered
59844 00000020:00000001:3.0:1469110646.860991:0:4320:0:(cl_page.c:376:cl_page_put()) page@ffff8800bd93d400[3 ffff880102e5be28 4 1 (null)]
59845 
59846 00000020:00000001:3.0:1469110646.860992:0:4320:0:(cl_page.c:376:cl_page_put()) 3
59847 00000020:00000001:3.0:1469110646.860993:0:4320:0:(cl_page.c:391:cl_page_put()) Process leaving
59848 00000008:00000001:3.0:1469110646.860994:0:4320:0:(osc_cache.c:2467:osc_teardown_async_page()) Process entered
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;2. why page-&amp;gt;cp_ref is 3 ? &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;59846 00000020:00000001:3.0:1469110646.860992:0:4320:0:(cl_page.c:376:cl_page_put()) 3
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Please correct me if anything is wrong .&lt;br/&gt;
Thanks.&lt;/p&gt;</comment>
                            <comment id="162783" author="parinay" created="Tue, 23 Aug 2016 08:12:04 +0000"  >&lt;p&gt;This issue is dup of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8175&quot; title=&quot;conflicting PW &amp;amp; PR extent locks on a client&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8175&quot;&gt;&lt;del&gt;LU-8175&lt;/del&gt;&lt;/a&gt;. It has the patch, I will test it with reproducible steps I have here and update this bug.&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|hzyh6v:</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>