<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:18:34 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-8553] incorrect fix in LU-7558</title>
                <link>https://jira.whamcloud.com/browse/LU-8553</link>
                <project id="10000" key="LU">Lustre</project>
                    <description></description>
                <environment></environment>
        <key id="39141">LU-8553</key>
            <summary>incorrect fix in LU-7558</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="tappro">Mikhail Pershin</assignee>
                                    <reporter username="shadow">Alexey Lyashkov</reporter>
                        <labels>
                            <label>ptlrpc</label>
                    </labels>
                <created>Fri, 26 Aug 2016 06:22:19 +0000</created>
                <updated>Sun, 22 Jul 2018 09:22:17 +0000</updated>
                            <resolved>Sun, 22 Jul 2018 09:22:17 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="163220" author="shadow" created="Fri, 26 Aug 2016 06:44:30 +0000"  >&lt;p&gt;grr.. &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7558&quot; title=&quot;niobuf.c:721:ptl_send_rpc() LASSERT(AT_OFF || imp_state != LUSTRE_IMP_FULL || imp_msghdr_flags &amp;amp; MSGHDR_AT_SUPPORT ...)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7558&quot;&gt;&lt;del&gt;LU-7558&lt;/del&gt;&lt;/a&gt; tryes to fix two connection interpret functions race. It assume a new connection attempt is called while first connection interpret executed. But solving that race don&apos;t need an introduce a new flag, but just refine a conditional in ptlrpc_connect_import function. Currently it block a connect attempt in several conditions&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;if&lt;/span&gt; (imp-&amp;gt;imp_state == LUSTRE_IMP_CLOSED) {
                spin_unlock(&amp;amp;imp-&amp;gt;imp_lock);
                CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;can&apos;t connect to a closed &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;\n&quot;&lt;/span&gt;);
                RETURN(-EINVAL);
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (imp-&amp;gt;imp_state == LUSTRE_IMP_FULL) {
                spin_unlock(&amp;amp;imp-&amp;gt;imp_lock);
                CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;already connected\n&quot;&lt;/span&gt;);
                RETURN(0);
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (imp-&amp;gt;imp_state == LUSTRE_IMP_CONNECTING) {
                spin_unlock(&amp;amp;imp-&amp;gt;imp_lock);
                CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;already connecting\n&quot;&lt;/span&gt;);
                RETURN(-EALREADY);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;so open a race to send new connect while import switched to the recovery. but changing a last conditional to the something like imp_state != LUSTRE_IMP_DISCON =&amp;gt; return -EALREADY. solve same bug without new flag introduce.&lt;/p&gt;

&lt;p&gt;But that patch isn&apos;t solve second problem anyway. Second problem is introduced with many ptlrpcd threads added as part of SMP improvement work. first connect interpret scheduled to ptlrpcd thread X, but it thread may blocked for some time while processed other interprets like IO processing, so we may enter to situation when client send send second connect while first in flight. It should be easy reconnect with lctl tool which send a parallel connect request, or recovery vs pinger race. First connect send while replay request failed, second request send from pinger. First thread may blocked on cancel unused locks in that case.&lt;br/&gt;
I think checking a imp_conn_cnt on connect interpret (in same way as server side does) will solve it problem as don&apos;t allow to execute a stale connect interpret.&lt;/p&gt;</comment>
                            <comment id="230717" author="tappro" created="Sun, 22 Jul 2018 09:22:17 +0000"  >&lt;p&gt;Closing issue as an outdated one. Alexey, feel free to reopen if you think it still exists&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|hzym7j:</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>