<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:34:00 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-3448] osc_page_delete()) ASSERTION(0) failed running racer</title>
                <link>https://jira.whamcloud.com/browse/LU-3448</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Running a modified racer (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3072&quot; title=&quot;add more operations to racer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3072&quot;&gt;&lt;del&gt;LU-3072&lt;/del&gt;&lt;/a&gt;, + smaller dds + sleep in file_create.sh) I can reproduce this.&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;LustreError: 23518:0:(osc_cache.c:2379:osc_teardown_async_page()) extent ffff8800abb54c60@{[0 -&amp;gt; 1/255], [3|1|-|active|wi|ffff8800aa8b4688], [8192|2|+|-|ffff8800ac9a2e78|256|(null)]} trunc at 0.
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) page@ffff8800acab8600[2 ffff8800ae3bb630:0 ^(null)_ffff880112410800 4 0 1 (null) (null) 0x0]
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) page@ffff880112410800[2 ffff8800a99e8508:0 ^ffff8800acab8600_(null) 4 0 1 (null) (null) 0x0]
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) vvp-page@ffff8800acab86c0(0:0:0) vm@ffffea0002c25250 20000000000035 3:0 0 0 lru
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) lov-page@ffff8800acab8710
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) osc-page@ffff8801124108e8: 1&amp;lt; 0x845fed 258 0 + - &amp;gt; 2&amp;lt; 0 0 4096 0x0 0x520 | (null) ffff8800b135e600 ffff8800aa8b4688 &amp;gt; 3&amp;lt; + ffff8800ade74080 0 0 0 &amp;gt; 4&amp;lt; 0 0 8 33980416 - | - - + - &amp;gt; 5&amp;lt; - - + - | 0 - | 7 - -&amp;gt;
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) end page@ffff8800acab8600
LustreError: 23518:0:(osc_page.c:430:osc_page_delete()) Trying to teardown failed: -16
LustreError: 23518:0:(osc_page.c:431:osc_page_delete()) ASSERTION( 0 ) failed: 
LustreError: 23518:0:(osc_page.c:431:osc_page_delete()) LBUG
Pid: 23518, comm: cp

Call Trace:
 [&amp;lt;ffffffffa02ae895&amp;gt;] libcfs_debug_dumpstack+0x55/0x80 [libcfs]
 [&amp;lt;ffffffffa02aee97&amp;gt;] lbug_with_loc+0x47/0xb0 [libcfs]
 [&amp;lt;ffffffffa0854701&amp;gt;] osc_page_delete+0x311/0x320 [osc]
 [&amp;lt;ffffffffa0468bb5&amp;gt;] cl_page_delete0+0xc5/0x4e0 [obdclass]
 [&amp;lt;ffffffffa0469012&amp;gt;] cl_page_delete+0x42/0x120 [obdclass]
 [&amp;lt;ffffffffa0ce766d&amp;gt;] ll_invalidatepage+0x8d/0x160 [lustre]
 [&amp;lt;ffffffff81131ae5&amp;gt;] do_invalidatepage+0x25/0x30
 [&amp;lt;ffffffff81131e02&amp;gt;] truncate_inode_page+0xa2/0xc0
 [&amp;lt;ffffffff811322d2&amp;gt;] truncate_inode_pages_range+0x292/0x500
 [&amp;lt;ffffffffa02afa4e&amp;gt;] ? cfs_mem_cache_free+0xe/0x10 [libcfs]
 [&amp;lt;ffffffff81143b62&amp;gt;] ? unmap_mapping_range+0x72/0x140
 [&amp;lt;ffffffff811325d5&amp;gt;] truncate_inode_pages+0x15/0x20
 [&amp;lt;ffffffff8113262f&amp;gt;] truncate_pagecache+0x4f/0x70
 [&amp;lt;ffffffff811aa84a&amp;gt;] simple_setsize+0x3a/0x50
 [&amp;lt;ffffffff811aa8a0&amp;gt;] simple_setattr+0x40/0x70
 [&amp;lt;ffffffffa0cc1416&amp;gt;] ll_setattr_raw+0x2a6/0x1090 [lustre]
 [&amp;lt;ffffffffa0cc225b&amp;gt;] ll_setattr+0x5b/0xf0 [lustre]
 [&amp;lt;ffffffff8119fdc8&amp;gt;] notify_change+0x168/0x340
 [&amp;lt;ffffffff811807e4&amp;gt;] do_truncate+0x64/0xa0
 [&amp;lt;ffffffff8121e52f&amp;gt;] ? security_inode_permission+0x1f/0x30
 [&amp;lt;ffffffff811946e4&amp;gt;] do_filp_open+0x844/0xdd0
 [&amp;lt;ffffffff8104757c&amp;gt;] ? __do_page_fault+0x1ec/0x480
 [&amp;lt;ffffffff811a0ca2&amp;gt;] ? alloc_fd+0x92/0x160
 [&amp;lt;ffffffff8117f559&amp;gt;] do_sys_open+0x69/0x140
 [&amp;lt;ffffffff8117f670&amp;gt;] sys_open+0x20/0x30
 [&amp;lt;ffffffff8100b072&amp;gt;] system_call_fastpath+0x16/0x1b
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="19351">LU-3448</key>
            <summary>osc_page_delete()) ASSERTION(0) failed running racer</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="jhammond">John Hammond</assignee>
                                    <reporter username="jhammond">John Hammond</reporter>
                        <labels>
                            <label>osc</label>
                    </labels>
                <created>Mon, 10 Jun 2013 17:29:15 +0000</created>
                <updated>Wed, 24 Jul 2013 11:05:41 +0000</updated>
                            <resolved>Fri, 21 Jun 2013 22:08:13 +0000</resolved>
                                    <version>Lustre 2.5.0</version>
                                    <fixVersion>Lustre 2.5.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="60486" author="jhammond" created="Wed, 12 Jun 2013 22:39:12 +0000"  >&lt;p&gt;This appears to have been introduced by a61ff59. After reverting that commit I no longer see it.&lt;/p&gt;

&lt;p&gt;On master I can see it using a non-modified racer as well.&lt;/p&gt;</comment>
                            <comment id="60592" author="jay" created="Thu, 13 Jun 2013 20:33:43 +0000"  >&lt;p&gt;My bad, this is a race. After the truncate finished in ll_setattr_ost(), it released inode mutex so that new write produced more pages beyond truncate size. &lt;/p&gt;

&lt;p&gt;John, if you get a chance, can you please restore the change in &lt;a href=&quot;http://review.whamcloud.com/#patch,sidebyside,4816,18,lustre/llite/llite_lib.c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#patch,sidebyside,4816,18,lustre/llite/llite_lib.c&lt;/a&gt; and give it a try?&lt;/p&gt;</comment>
                            <comment id="60601" author="jhammond" created="Thu, 13 Jun 2013 22:48:49 +0000"  >&lt;p&gt;This works for me. I reverted the first 3 of the 4 hunks in llite_lib.c and the crash has gone away. I don&apos;t follow your explanation however. I seems more likely to me that the difference is that the old way cleared ATTR_SIZE from valid in simple_setattr(). Please correct me if I&apos;m wrong.&lt;/p&gt;</comment>
                            <comment id="60612" author="jhammond" created="Fri, 14 Jun 2013 01:08:39 +0000"  >&lt;p&gt;Please see &lt;a href=&quot;http://review.whamcloud.com/6643&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/6643&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="60691" author="jhammond" created="Fri, 14 Jun 2013 17:51:16 +0000"  >&lt;p&gt;Restoring the call to simple_setattr() fixed the LBUG but causes the added test (sanity 229) to fail. Shall I delete the test as well?&lt;/p&gt;

&lt;p&gt;On master (2.4.50-79-gaed8203) which has the patch from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2482&quot; title=&quot;Define new layout for released file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2482&quot;&gt;&lt;del&gt;LU-2482&lt;/del&gt;&lt;/a&gt; I see that the effect of truncate on a released file is not seen consistently across clients:&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;# MOUNT_2=y llmount.sh
# multiop /mnt/lustre/f0 H2c
# truncate --size=42 /mnt/lustre/f0
# stat /mnt/lustre/f0
  File: `/mnt/lustre/f0&apos;
  Size: 42        	Blocks: 0          IO Block: 4194304 regular file
...
# stat /mnt/lustre2/f0
  File: `/mnt/lustre2/f0&apos;
  Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
...
# stat /mnt/lustre/f0
  File: `/mnt/lustre/f0&apos;
  Size: 42        	Blocks: 0          IO Block: 4194304 regular file
...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Can someone explain why we support truncate (to non-zero size) on released files? Truncate to zero seems somewhat defensible, but to non-zero just asks for trouble. But in either case why bother? In practice won&apos;t truncate almost always be followed by write (requiring a restore)?&lt;/p&gt;</comment>
                            <comment id="60699" author="jay" created="Fri, 14 Jun 2013 18:53:21 +0000"  >&lt;p&gt;Originally this is worked out for an optimization. For example, when a released file is truncated, we just change the size on the MDT but restore it later. But here is a problem that if a release file is truncated down to size A, then up to size B. The file content in &lt;span class=&quot;error&quot;&gt;&amp;#91;A, B&amp;#93;&lt;/span&gt; should contain zero.&lt;/p&gt;

&lt;p&gt;I think it&apos;s okay to remove the truncate part in the test case.&lt;/p&gt;</comment>
                            <comment id="60702" author="jhammond" created="Fri, 14 Jun 2013 19:08:24 +0000"  >&lt;p&gt;Well that would make an even stronger case for disallowing truncates on released files.&lt;/p&gt;

&lt;p&gt;CEA colleagues, do you have opinions to share on this?&lt;/p&gt;</comment>
                            <comment id="60739" author="johann" created="Sat, 15 Jun 2013 19:37:45 +0000"  >&lt;p&gt;I don&apos;t think we ever intended to support such an optimization. In general, truncate should trigger a restore. The only case we want to &quot;optimize&quot; is truncate to 0 where we can just discard the HSM copy.&lt;/p&gt;</comment>
                            <comment id="60742" author="jcl" created="Sun, 16 Jun 2013 20:48:12 +0000"  >&lt;p&gt;I confirm Johann comment, truncate trigs a restore and blocks up to end of full restore. Later with partial restore we can optimize this.&lt;br/&gt;
Today the only optimization is truncate to 0 (no restore)&lt;/p&gt;</comment>
                            <comment id="60771" author="jay" created="Mon, 17 Jun 2013 16:46:52 +0000"  >&lt;p&gt;It appears I misunderstood you guys. Because when you asked me to add the test case for truncate to released file, I thought this is what you will do.&lt;/p&gt;</comment>
                            <comment id="60774" author="jay" created="Mon, 17 Jun 2013 17:01:25 +0000"  >&lt;p&gt;To make it safe, let&apos;s deny the truncate to HSM released file.&lt;/p&gt;

&lt;p&gt;John, can you please add this fix in your patch? The extra fix would be:&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;[jinxiong@intel mdc]$ git diff ../lov/lov_io.c 
diff --git a/lustre/lov/lov_io.c b/lustre/lov/lov_io.c
index 6f6ea84..bec9fea 100644
--- a/lustre/lov/lov_io.c
+++ b/lustre/lov/lov_io.c
@@ -984,12 +984,12 @@ &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; lov_io_init_released(&lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; struct lu_env *env, struct cl_object *obj,
                LASSERTF(0, &lt;span class=&quot;code-quote&quot;&gt;&quot;invalid type %d\n&quot;&lt;/span&gt;, io-&amp;gt;ci_type);
        &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_MISC:
        &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_FSYNC:
-       &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_SETATTR:
                result = +1;
                &lt;span class=&quot;code-keyword&quot;&gt;break&lt;/span&gt;;
        &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_READ:
        &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_WRITE:
        &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_FAULT:
+       &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; CIT_SETATTR:
                &lt;span class=&quot;code-comment&quot;&gt;/* TODO: need to restore the file. */&lt;/span&gt;
                result = -EBADF;
                &lt;span class=&quot;code-keyword&quot;&gt;break&lt;/span&gt;;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Without this fix, it will have problem to handle the size of released file with truncate.&lt;/p&gt;</comment>
                            <comment id="61045" author="jhammond" created="Fri, 21 Jun 2013 22:08:13 +0000"  >&lt;p&gt;Patch landed to master.&lt;/p&gt;</comment>
                            <comment id="62865" author="jhammond" created="Wed, 24 Jul 2013 00:31:46 +0000"  >&lt;p&gt;Is there any plan to rehabilitate truncate to 0 (or O_TRUNC) for released files?&lt;/p&gt;</comment>
                            <comment id="62889" author="jcl" created="Wed, 24 Jul 2013 11:05:41 +0000"  >&lt;p&gt;today we have 2 cases:&lt;br/&gt;
1) a released file (just created with a release layout as in test 229)&lt;br/&gt;
2) a released file associated with an archive (after hsm_archive + hsm_release or an import)&lt;/p&gt;

&lt;p&gt;truncate 0 or &amp;gt; 0 on 1) make an error&lt;br/&gt;
truncate &amp;gt; 0 on 2), restores the archived and truncates the file&lt;br/&gt;
truncate 0 on 2) should work without a restore (still need to be done, see &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3454&quot; title=&quot;open (O_TRUNC) and truncate(0) on a released file must not trig a restore &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3454&quot;&gt;&lt;del&gt;LU-3454&lt;/del&gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If we change to have truncate 0 works on 1), we can also change to have truncate &amp;gt; 0 also works. This is only philosophy on &quot;what is a released file without an HSM archive&quot;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="16908">LU-2482</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="17031">LU-2531</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_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvsyn:</customfieldvalue>

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