<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:55:02 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-12718] Readahead can trigger an assertion failire in cl_io_read_ahead</title>
                <link>https://jira.whamcloud.com/browse/LU-12718</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The follow crash message was observed (on the upstream-linux client).&lt;/p&gt;

&lt;p&gt;If the pre-read needed for a sub-page write triggers read-ahead, this will happen.&lt;/p&gt;

&lt;p&gt;We should probably just disable read-ahead for writes.&lt;/p&gt;


&lt;p&gt; [ 1666.576466] LustreError: 3089:0:(cl_io.c:549:cl_io_read_ahead()) ASSERTION( io-&amp;gt;ci_type == CIT_READ || io-&amp;gt;ci_type&lt;br/&gt;
 [ 1666.578761] LustreError: 3089:0:(cl_io.c:549:cl_io_read_ahead()) LBUG&lt;br/&gt;
 [ 1666.579807] Pid: 3089, comm: loop3 5.2.0-rc2-00877-gca23fc4b3908 #278 SMP PREEMPT Mon Jul 22 10:32:24 AEST 2019&lt;br/&gt;
 [ 1666.581132] Call Trace:&lt;br/&gt;
 [ 1666.581519] libcfs_debug_dumpstack+0x67/0x84&lt;br/&gt;
 [ 1666.582072] lbug_with_loc+0x33/0x75&lt;br/&gt;
 [ 1666.582520] cl_io_read_ahead+0x86/0xd6&lt;br/&gt;
 [ 1666.582979] ll_io_read_page+0x887/0x1089&lt;br/&gt;
 [ 1666.583457] ll_write_begin+0x4fa/0x69b&lt;br/&gt;
 [ 1666.583917] generic_perform_write+0xb4/0x193&lt;br/&gt;
 [ 1666.584448] __generic_file_write_iter+0x12c/0x16c&lt;br/&gt;
 [ 1666.585011] vvp_io_write_start+0x492/0x60c&lt;br/&gt;
 [ 1666.585555] cl_io_start+0xef/0x105&lt;br/&gt;
 [ 1666.586049] cl_io_loop+0xaa/0x1ec&lt;br/&gt;
 [ 1666.586527] ll_file_io_generic+0x475/0x7ca&lt;br/&gt;
 [ 1666.587131] ll_file_write_iter+0x224/0x274&lt;br/&gt;
 [ 1666.587718] do_iter_readv_writev+0x13a/0x176&lt;br/&gt;
 [ 1666.588308] do_iter_write+0x8b/0xff&lt;br/&gt;
 [ 1666.588866] lo_write_bvec+0x74/0xf8&lt;br/&gt;
 [ 1666.589374] loop_queue_work+0x376/0x8bc&lt;br/&gt;
 [ 1666.589908] kthread_worker_fn+0xc3/0x154&lt;br/&gt;
 [ 1666.590452] kthread+0x111/0x119&lt;br/&gt;
 [ 1666.590892] ret_from_fork+0x24/0x30&lt;/p&gt;</description>
                <environment></environment>
        <key id="56806">LU-12718</key>
            <summary>Readahead can trigger an assertion failire in cl_io_read_ahead</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="neilb">Neil Brown</assignee>
                                    <reporter username="neilb">Neil Brown</reporter>
                        <labels>
                    </labels>
                <created>Fri, 30 Aug 2019 03:26:08 +0000</created>
                <updated>Sat, 14 Dec 2019 13:58:06 +0000</updated>
                            <resolved>Sat, 14 Dec 2019 13:58:06 +0000</resolved>
                                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="253898" author="gerrit" created="Fri, 30 Aug 2019 03:30:11 +0000"  >&lt;p&gt;Neil Brown (neilb@suse.de) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36000&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36000&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12718&quot; title=&quot;Readahead can trigger an assertion failire in cl_io_read_ahead&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12718&quot;&gt;&lt;del&gt;LU-12718&lt;/del&gt;&lt;/a&gt; llite: don&apos;t trigger read-ahead for a write.&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ff8d8420ebdcd819c10824ca5c95f1a3163c9a80&lt;/p&gt;</comment>
                            <comment id="253912" author="adilger" created="Fri, 30 Aug 2019 07:30:50 +0000"  >&lt;p&gt;Actually, the readahead for sub-page write was explicitly implemented not so long ago, because this improved performance noticeably. Otherwise, the client may be waiting for two separate reads (first partial page and last partial page) for each write. See patch &lt;a href=&quot;https://review.whamcloud.com/27544&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/27544&lt;/a&gt;&lt;br/&gt;
 &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9618&quot; title=&quot;Connect readahead to prep_partial_page to improve small (&amp;lt; 1 page) write performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9618&quot;&gt;&lt;del&gt;LU-9618&lt;/del&gt;&lt;/a&gt; clio: Use readahead for partial page write&lt;/tt&gt;&quot; for details. &lt;/p&gt;</comment>
                            <comment id="253914" author="neilb" created="Fri, 30 Aug 2019 08:02:28 +0000"  >&lt;p&gt;Ahh... maybe it&apos;s just the LINVRNT() in cl_io_read_ahead() that is bad then ... but if it is, I would have expected it to show up when this feature was tested.&lt;/p&gt;

&lt;p&gt;But then, there is a lot that I don&apos;t understand yet, so maybe there is a good explanation.&lt;/p&gt;

&lt;p&gt;I did have the &quot;Use readahead for partial page write&quot; patch in the kernel that crashed.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="253928" author="pfarrell" created="Fri, 30 Aug 2019 13:29:07 +0000"  >&lt;p&gt;Generally:&lt;/p&gt;

&lt;p&gt;So, this didn&apos;t show up during original testing because the LINVRNT checks are only enabled by a build flag (I think it&apos;s config-debug-check-expensive or similar) that isn&apos;t part of the normal builds, but I think it&apos;s come up before that you use it, Neil.&#160; (This is good!&#160; We should use it in some of our builds as well...)&lt;/p&gt;

&lt;p&gt;So it didn&apos;t hit in the testing for this feature because the check wasn&apos;t there.&lt;/p&gt;

&lt;p&gt;Specifically:&lt;/p&gt;

&lt;p&gt;Definitely the problem is the LINVRNT - It&apos;s just a belt and suspenders, &quot;check what you know to be true&quot; sort of thing, it&apos;s not actually enforcing any constraints that I can see.&#160; Certainly &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9618&quot; title=&quot;Connect readahead to prep_partial_page to improve small (&amp;lt; 1 page) write performance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9618&quot;&gt;&lt;del&gt;LU-9618&lt;/del&gt;&lt;/a&gt; has been in for a while and doesn&apos;t seem to cause any trouble &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;


&lt;p&gt;I&apos;ll also drop this in Gerrit...&lt;/p&gt;</comment>
                            <comment id="253932" author="simmonsja" created="Fri, 30 Aug 2019 14:25:50 +0000"  >&lt;p&gt;Let&apos;s talk to Oleg about him enabling LINVRNT in this test rig.&lt;/p&gt;</comment>
                            <comment id="253946" author="simmonsja" created="Fri, 30 Aug 2019 15:48:53 +0000"  >&lt;p&gt;I discussed with Oleg about enabling&#160;CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK in his test rig. We also have this issue with lu_ref as well. Its never tested and Neil has purposed just removing it since its never used and no one seems to be interesting in it.&lt;/p&gt;</comment>
                            <comment id="259857" author="gerrit" created="Sat, 14 Dec 2019 05:59:15 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/36000/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36000/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12718&quot; title=&quot;Readahead can trigger an assertion failire in cl_io_read_ahead&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12718&quot;&gt;&lt;del&gt;LU-12718&lt;/del&gt;&lt;/a&gt; obdclass: Allow read-ahead for write requests&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 514bd936d06141319fb5e8032e4b7fa7bc0d1194&lt;/p&gt;</comment>
                            <comment id="259888" author="pjones" created="Sat, 14 Dec 2019 13:58:06 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="46571">LU-9618</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|i00m47:</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>