<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:07:55 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-14223] Potential deadlock in lnet_peer_data_present()</title>
                <link>https://jira.whamcloud.com/browse/LU-14223</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Potential deadlock introduced by commit:&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;commit ae0ac29348023b9d8df7783bff463d07e3762f82
Author: Chris Horn &amp;lt;chris.horn@hpe.com&amp;gt;
Date:   Thu Aug 6 16:39:27 2020 -0500

    LUS-9193 lnet: Transfer disc src NID when merging peers
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;                        struct lnet_peer *new_lp;
                        new_lp = lpni-&amp;gt;lpni_peer_net-&amp;gt;lpn_peer;
...
                        spin_lock(&amp;amp;lp-&amp;gt;lp_lock);
                        spin_lock(&amp;amp;new_lp-&amp;gt;lp_lock);
                        if (!(lp-&amp;gt;lp_state &amp;amp; LNET_PEER_NO_DISCOVERY))
                                new_lp-&amp;gt;lp_state &amp;amp;= ~LNET_PEER_NO_DISCOVERY;
                        if (lp-&amp;gt;lp_state &amp;amp; LNET_PEER_MULTI_RAIL)
                                new_lp-&amp;gt;lp_state |= LNET_PEER_MULTI_RAIL;
                        /* If we&apos;re processing a ping reply then we may be
                         * about to send a push to the peer that we ping&apos;d.
                         * Since the ping reply that we&apos;re processing was
                         * received by lp, we need to set the discovery source
                         * NID for new_lp to the NID stored in lp.
                         */
                        if (lp-&amp;gt;lp_disc_src_nid != LNET_NID_ANY)
                                new_lp-&amp;gt;lp_disc_src_nid = lp-&amp;gt;lp_disc_src_nid;
                        spin_unlock(&amp;amp;new_lp-&amp;gt;lp_lock);
                        spin_unlock(&amp;amp;lp-&amp;gt;lp_lock);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This logic reconciles a situation where the primary NID for a known peer has changed. It works for the case where we hadn&apos;t yet fully discovered a peer, but if the peer had been previously discovered, and then it deletes its primary NID, this logic results in both &quot;lp&quot; and &quot;new_lp&quot; pointing to the same peer object. Thus we attempt to lock the same lp_lock twice and we deadlock.&lt;/p&gt;</description>
                <environment></environment>
        <key id="62006">LU-14223</key>
            <summary>Potential deadlock in lnet_peer_data_present()</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="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="6">Not a Bug</resolution>
                                        <assignee username="hornc">Chris Horn</assignee>
                                    <reporter username="hornc">Chris Horn</reporter>
                        <labels>
                    </labels>
                <created>Tue, 15 Dec 2020 21:24:54 +0000</created>
                <updated>Tue, 15 Dec 2020 21:29:50 +0000</updated>
                            <resolved>Tue, 15 Dec 2020 21:29:50 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="287634" author="hornc" created="Tue, 15 Dec 2020 21:29:50 +0000"  >&lt;p&gt;I did not realize that the patch which introduced the regression hadn&apos;t yet landed for master. Closing as not a bug. (I&apos;ll  fix the regression in the patch for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13894&quot; title=&quot;lnet_peer_data_present() needs to transfer the lp_disc_src_nid if it is merging two peers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13894&quot;&gt;&lt;del&gt;LU-13894&lt;/del&gt;&lt;/a&gt;)&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|i01h93:</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>