<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:18:21 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-15441] WBC: Write hang with O_DSYNC file flag</title>
                <link>https://jira.whamcloud.com/browse/LU-15441</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When benchmark with filebench oltp.f workload, the writer hanged.&lt;/p&gt;

&lt;p&gt;After investigated, we found the following dead lock in WBC code:&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;
 &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; ssize_t memfs_file_write_iter(struct kiocb *iocb, struct iov_iter *iter)
{
 &#160; &#160;down_read(&amp;amp;wbci-&amp;gt;wbci_rw_sem);
 repeat:
&#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (wbc_inode_data_caching(wbci)) {
 &#160; &#160; &#160; &#160;rc = generic_file_write_iter(iocb, iter);
 &#160;&#160; &#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (rc == -ENOSPC) &#160; &#160;
 &#160; &#160; &#160; &#160; &#160; &#160; GOTO(repeat, rc);
    } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
 &#160; &#160; &#160; &#160;rc = ll_i2sbi(inode)-&amp;gt;ll_fop-&amp;gt;write_iter(iocb, iter);
&#160; &#160; }
&#160; &#160; up_read(&amp;amp;wbci-&amp;gt;wbci_rw_sem);
    ....
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;
generic_file_write_iter() -&amp;gt;generic_write_sync():
&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; inline ssize_t generic_write_sync(struct kiocb *iocb, ssize_t count)
{
	&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (iocb-&amp;gt;ki_flags &amp;amp; IOCB_DSYNC) {
		&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; 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);
          ...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;
&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; memfs_fsync(struct file *file, loff_t start,
                       loff_t end, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; datasync)
{
    &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (S_ISREG(inode-&amp;gt;i_mode)) {
               down_write(&amp;amp;wbci-&amp;gt;wbci_rw_sem); &lt;span class=&quot;code-comment&quot;&gt;//**
&lt;/span&gt;               rc = wbcfs_commit_cache_pages(inode);
               up_write(&amp;amp;wbci-&amp;gt;wbci_rw_sem); &lt;span class=&quot;code-comment&quot;&gt;//**
&lt;/span&gt;  }
  ...
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

</description>
                <environment></environment>
        <key id="67951">LU-15441</key>
            <summary>WBC: Write hang with O_DSYNC file flag</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="51932">LU-10938</parent>
                                    <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="qian_wc">Qian Yingjin</assignee>
                                    <reporter username="qian_wc">Qian Yingjin</reporter>
                        <labels>
                    </labels>
                <created>Wed, 12 Jan 2022 03:15:39 +0000</created>
                <updated>Wed, 12 Jan 2022 03:58:54 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="322410" author="gerrit" created="Wed, 12 Jan 2022 03:58:54 +0000"  >&lt;p&gt;&quot;Yingjin Qian &amp;lt;qian@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/46059&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/46059&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15441&quot; title=&quot;WBC: Write hang with O_DSYNC file flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15441&quot;&gt;LU-15441&lt;/a&gt; wbc: write hang with O_DSYNC flag&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 8e02e26c2ffca05bb9907d1e76dfd768b8290c04&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|i02ek7:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>