<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:30:37 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-9937] Re-order inode_lock and lli_trunc_sem to fix pio deadlock</title>
                <link>https://jira.whamcloud.com/browse/LU-9937</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When using pio, we take the inode lock in ll_file_io_generic.  Unfortunately, this violates the expected ordering with lli_trunc_sem, as seen in vvp_io_setattr_&lt;/p&gt;
{start,end}
&lt;p&gt;.  This can result in a deadlock where a thread doing a write holds the inode lock and wants the trunc sem in read mode, but setattr already holds the trunc sem in write mode and wants the inode lock.&lt;/p&gt;

&lt;p&gt;It appears to be safe to change the ordering between inode_lock and the lli_trunc_sem, so we always take the inode lock first.&lt;/p&gt;

&lt;p&gt;Also, the forthcoming patch cleans up inode locking with pio, removing lli_inode_locked.  The inode info is shared between all threads doing i/o on that inode, so usage of this meant we would not take the inode lock for operations that needed it if someone already held it (notably ll_fsync), and we would also let other threads unlock the inode lock for us.&lt;/p&gt;

&lt;p&gt;So operations that expect complete coverage could get unlocked at some random point in their operation.  Also, if a pio were holding the inode lock, multiple ll_fsync operations could occur at the same time.&lt;/p&gt;</description>
                <environment></environment>
        <key id="48096">LU-9937</key>
            <summary>Re-order inode_lock and lli_trunc_sem to fix pio deadlock</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="paf">Patrick Farrell</assignee>
                                    <reporter username="paf">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Fri, 1 Sep 2017 15:29:39 +0000</created>
                <updated>Sat, 29 Jan 2022 10:46:35 +0000</updated>
                            <resolved>Sat, 29 Jan 2022 10:46:35 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="207248" author="gerrit" created="Fri, 1 Sep 2017 16:28:21 +0000"  >&lt;p&gt;Patrick Farrell (paf@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/28836&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28836&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9937&quot; title=&quot;Re-order inode_lock and lli_trunc_sem to fix pio deadlock&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9937&quot;&gt;&lt;del&gt;LU-9937&lt;/del&gt;&lt;/a&gt; llite: fix pio deadlock&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ffbf1e49a97eb86309adc2ad581e4d7e16d56ae8&lt;/p&gt;</comment>
                            <comment id="324435" author="adilger" created="Sat, 29 Jan 2022 10:46:35 +0000"  >&lt;p&gt;PIO is removed.&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|hzzjfr:</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>