<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:15:14 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-15076] Add locking to ksocknal_find_timed_out_conn() for safe ksnc_tx_queue list processing	</title>
                <link>https://jira.whamcloud.com/browse/LU-15076</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;GFP happened in this peice of code from&#160;ksocknal_find_timed_out_conn():&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; ((!list_empty(&amp;amp;conn-&amp;gt;ksnc_tx_queue) ||
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; conn-&amp;gt;ksnc_sock-&amp;gt;sk-&amp;gt;sk_wmem_queued != 0) &amp;amp;&amp;amp;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ktime_get_seconds() &amp;gt;= conn-&amp;gt;ksnc_tx_deadline) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; /* Timed out messages queued &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; sending or
&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; * buffered in the socket&apos;s send buffer */
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ksocknal_conn_addref(conn);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; list_for_each_entry(tx, &amp;amp;conn-&amp;gt;ksnc_tx_queue,
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tx_list)
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; tx-&amp;gt;tx_hstatus = &amp;lt;----GFP here
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; LNET_MSG_STATUS_LOCAL_TIMEOUT; \{code}


It looks like ksnc_tx_queue processing requires some additional locking.
For instance, like it done in ksocknal_write_callback():
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;spin_lock_bh(&amp;amp;sched-&amp;gt;kss_lock);&lt;br/&gt;
...&lt;br/&gt;
if (!conn-&amp;gt;ksnc_tx_scheduled &amp;amp;&amp;amp; /* not being progressed */&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; !list_empty(&amp;amp;conn-&amp;gt;ksnc_tx_queue)) { /* packets to send */&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; list_add_tail(&amp;amp;conn-&amp;gt;ksnc_tx_list, &amp;amp;sched-&amp;gt;kss_tx_conns);&lt;br/&gt;
...&lt;br/&gt;
spin_unlock_bh(&amp;amp;sched-&amp;gt;kss_lock);&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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="66573">LU-15076</key>
            <summary>Add locking to ksocknal_find_timed_out_conn() for safe ksnc_tx_queue list processing	</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="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="artem_blagodarenko">Artem Blagodarenko</assignee>
                                    <reporter username="artem_blagodarenko">Artem Blagodarenko</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Mon, 11 Oct 2021 07:26:52 +0000</created>
                <updated>Tue, 23 Aug 2022 19:24:49 +0000</updated>
                            <resolved>Wed, 27 Oct 2021 03:46:10 +0000</resolved>
                                                    <fixVersion>Lustre 2.15.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="315193" author="gerrit" created="Mon, 11 Oct 2021 07:30:57 +0000"  >&lt;p&gt;&quot;Artem Blagodarenko &amp;lt;artem.blagodarenko@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/45179&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/45179&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15076&quot; title=&quot;Add locking to ksocknal_find_timed_out_conn() for safe ksnc_tx_queue list processing	&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15076&quot;&gt;&lt;del&gt;LU-15076&lt;/del&gt;&lt;/a&gt; socklnd: lock ksnc_tx_queue list processing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 7d2db40dbdfcfab6800b3cec4718ae62abec18c1&lt;/p&gt;</comment>
                            <comment id="316620" author="gerrit" created="Wed, 27 Oct 2021 00:35:12 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/45179/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/45179/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15076&quot; title=&quot;Add locking to ksocknal_find_timed_out_conn() for safe ksnc_tx_queue list processing	&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15076&quot;&gt;&lt;del&gt;LU-15076&lt;/del&gt;&lt;/a&gt; socklnd: lock ksnc_tx_queue list processing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 13c7c2e3c248c8cdba4853852bfaecceb7a75afe&lt;/p&gt;</comment>
                            <comment id="316649" author="pjones" created="Wed, 27 Oct 2021 03:46:10 +0000"  >&lt;p&gt;Landed for 2.15&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|i026tj:</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>