<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:53:27 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-12536] Processes stuck in unkillable sleep waiting on IO during Lustre re-export of NFS testing</title>
                <link>https://jira.whamcloud.com/browse/LU-12536</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When a regression test suite is run on an NFS client against a NFS exported Lustre file system, the NFS server/Lustre client slows. Many of the nfsd threads are stuck in osc_extent_wait:&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;PID: 5989, 6017, 6018, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043
TASKS: 25
        schedule at ffffffff8161523e
        osc_extent_wait at ffffffffa0ec96b0 [osc]
        osc_cache_wait_range at ffffffffa0ecff5c [osc]
        osc_io_fsync_end at ffffffffa0ebc7c6 [osc]
        cl_io_end at ffffffffa09d6ac5 [obdclass]
        lov_io_end_wrapper at ffffffffa0ca3314 [lov]
        lov_io_fsync_end at ffffffffa0ca366e [lov]
        cl_io_end at ffffffffa09d6ac5 [obdclass]
        cl_io_loop at ffffffffa09da0dc [obdclass]
        cl_sync_file_range at ffffffffa0d9aea5 [lustre]
        ll_writepages at ffffffffa0dc1e83 [lustre]
        do_writepages at ffffffff811519ae
        __filemap_fdatawrite_range at ffffffff81146121
        filemap_write_and_wait_range at ffffffff8114623a
        ll_fsync at ffffffffa0d9b09a [lustre]
        vfs_fsync_range at ffffffff811d925b
        vvp_io_write_start at ffffffffa0df29f7 [lustre]
        cl_io_start at ffffffffa09d6d0e [obdclass]
        cl_io_loop at ffffffffa09da0ce [obdclass]
        ll_file_io_generic at ffffffffa0d91f88 [lustre]
        ll_file_write_iter at ffffffffa0d9257d [lustre]
        do_iter_readv_writev at ffffffff811a988a
        do_readv_writev at ffffffff811aa258
        vfs_writev at ffffffff811aa50c
        nfsd_vfs_write at ffffffff812e5e02
        nfsd_write at ffffffff812e84f8
        nfsd3_proc_write at ffffffff812ed523
        nfsd_dispatch at ffffffff812e14ae
        svc_process at ffffffff815ec536
        nfsd at ffffffff812e0ef0
        kthread at ffffffff81074376
        ret_from_fork at ffffffff8161983f
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;They are waiting for the extent&apos;s oe_state to change to OES_INV but there is no I/O pending that would cause the state to change. The ptlrpcd queues are empty; no threads are performing synchronous I/O.&lt;/p&gt;

&lt;p&gt;The problem was traced to a kernel change in generic_write_sync(). It checks for IOCB_DSYNC in the ki_flags instead of O_SYNC and IS_SYNC. As a result, generic_write_sync() is not writing anything and osc_extents are not getting released before the wait begins.&lt;/p&gt;

&lt;p&gt;Old function:&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;int generic_write_sync(struct file *file, loff_t pos, loff_t count)
{
        if (!(file-&amp;gt;f_flags &amp;amp; O_DSYNC) &amp;amp;&amp;amp; !IS_SYNC(file-&amp;gt;f_mapping-&amp;gt;host))
                return 0;
        return vfs_fsync_range(file, pos, pos + count - 1,
                               (file-&amp;gt;f_flags &amp;amp; __O_SYNC) ? 0 : 1);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;New function:&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;static inline ssize_t generic_write_sync(struct kiocb *iocb, ssize_t count)
{
        if (iocb-&amp;gt;ki_flags &amp;amp; IOCB_DSYNC) {
                int ret = vfs_fsync_range(iocb-&amp;gt;ki_filp,
                                iocb-&amp;gt;ki_pos - count, iocb-&amp;gt;ki_pos - 1,
                                (iocb-&amp;gt;ki_flags &amp;amp; IOCB_SYNC) ? 0 : 1);
                if (ret)
                        return ret;
        }

        return count;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="56388">LU-12536</key>
            <summary>Processes stuck in unkillable sleep waiting on IO during Lustre re-export of NFS testing</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="amk">Ann Koehler</assignee>
                                    <reporter username="amk">Ann Koehler</reporter>
                        <labels>
                    </labels>
                <created>Thu, 11 Jul 2019 20:29:16 +0000</created>
                <updated>Thu, 1 Oct 2020 14:51:19 +0000</updated>
                            <resolved>Sat, 27 Jul 2019 16:15:44 +0000</resolved>
                                    <version>Lustre 2.7.0</version>
                                    <fixVersion>Lustre 2.13.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="251129" author="gerrit" created="Thu, 11 Jul 2019 20:42:38 +0000"  >&lt;p&gt;Ann Koehler (amk@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35472&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35472&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12536&quot; title=&quot;Processes stuck in unkillable sleep waiting on IO during Lustre re-export of NFS testing&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12536&quot;&gt;&lt;del&gt;LU-12536&lt;/del&gt;&lt;/a&gt; llite: release active extent on sync write commit&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 05749198c9c7fc15e2aa3f29af98511da0d2963e&lt;/p&gt;</comment>
                            <comment id="252126" author="gerrit" created="Sat, 27 Jul 2019 00:22:11 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/35472/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35472/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12536&quot; title=&quot;Processes stuck in unkillable sleep waiting on IO during Lustre re-export of NFS testing&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12536&quot;&gt;&lt;del&gt;LU-12536&lt;/del&gt;&lt;/a&gt; llite: release active extent on sync write commit&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a9af7100ce72ece9c7a37c4d2c28b54fcf68b562&lt;/p&gt;</comment>
                            <comment id="252152" author="pjones" created="Sat, 27 Jul 2019 16:15:44 +0000"  >&lt;p&gt;Landed for 2.13&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <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|i00jjj:</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>