<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:32:42 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-3298] infinite loop in page fault on mmapped file.</title>
                <link>https://jira.whamcloud.com/browse/LU-3298</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The story on this one is not exactly clear yet.&lt;br/&gt;
I first noticed this problem because my sanityn mmap testing hung:&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;== sanityn test 18: mmap sanity check =================================== 17:19:48 (1367961588)
mmap test1: basic mmap operation (PASS, 0.040102s)
mmap test2: MAP_PRIVATE not write back (PASS, 0.011313s)
mmap test3: concurrent mmap ops on two nodes (SKIPPED, 0s)
mmap test4: c1 write to f1 from mmapped f2, c2 write to f1 from mmapped f1 (PASS, 2.1596s)
mmap test5: read/write file to/from the buffer which mmapped to just this file (PASS, 0.060313s)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;the bug hit in test 6&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;11499 pts/0    R+   1288:17 /home/green/git/lustre-release/lustre/tests/../tests/mmap_sanity -d /mnt/lustre -m /mnt/lustre2 -e 3
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Investigation of logs uncovered 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;00000080:00008000:7.0:1367964803.444630:0:11499:0:(vvp_io.c:727:vvp_io_fault_start()) llite: fault and truncate race happened!
00000080:00000001:7.0:1367964803.444630:0:11499:0:(vvp_io.c:731:vvp_io_fault_start()) Process leaving via out (rc=1 : 1 : 0x1)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The check for that is to see if page-&amp;gt;mapping is NULL indicating truncate.&lt;/p&gt;

&lt;p&gt;After digging some more into it I found that after this return we return all the way to userspace, then page fault repeats and we find this exact page when doing old_page = vm_normal_page(vma, address, orig_pte); in do_wp_page in kernel.&lt;br/&gt;
This is most likely a sign of a page that was truncated due to a lock cancellation (we do not have any truncates as part of the test) but somehow not removed from the mapping, so we always arrive at it anyway.&lt;/p&gt;

&lt;p&gt;This is basically all info I have for this problem now, we&apos;ll see if it repeats anywhere.&lt;/p&gt;</description>
                <environment></environment>
        <key id="18756">LU-3298</key>
            <summary>infinite loop in page fault on mmapped file.</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="5">Cannot Reproduce</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="green">Oleg Drokin</reporter>
                        <labels>
                    </labels>
                <created>Wed, 8 May 2013 19:13:43 +0000</created>
                <updated>Sat, 9 Oct 2021 05:42:35 +0000</updated>
                            <resolved>Sat, 9 Oct 2021 05:42:35 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="57994" author="adilger" created="Thu, 9 May 2013 07:42:15 +0000"  >&lt;p&gt;This seems related to the same stack that I posted in skype?&lt;/p&gt;</comment>
                            <comment id="58028" author="jay" created="Thu, 9 May 2013 16:14:29 +0000"  >&lt;p&gt;We did some investigation on this issue: one page was truncated but not removed from page table. So it fell into an infinite loop where it could find the page from page table but return in vvp_io_fault_start() because page-&amp;gt;mapping is NULL.&lt;/p&gt;

&lt;p&gt;I&apos;ll work out a debug patch.&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|hzvqgn:</customfieldvalue>

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