<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:14:05 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-14941] Remote NI recovery pings do not work in routed environment</title>
                <link>https://jira.whamcloud.com/browse/LU-14941</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Issue impacts all Lustre versions with LNet health.&lt;/p&gt;

&lt;p&gt;The routing algorithm does not ensure that recovery pings go to correct NI. In fact, they are actively avoided since, by definition, the health of that NI is sub-optimal. Here&apos;s a simple test showing the problem (test requires &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14939&quot; title=&quot;Allow specifying source NI for lnetctl ping&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14939&quot;&gt;&lt;del&gt;LU-14939&lt;/del&gt;&lt;/a&gt;): &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;sles15c01:/home/hornc/lustre-filesystem # lnetctl peer show --nid 192.168.2.35@tcp1
peer:
    - primary nid: 192.168.2.34@tcp1
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.34@tcp1
          state: NA
        - nid: 192.168.2.35@tcp1
          state: NA
sles15c01:/home/hornc/lustre-filesystem # lctl list_nids
192.168.2.38@tcp2
192.168.2.39@tcp2
sles15c01:/home/hornc/lustre-filesystem # lctl show_route
net               tcp1 hops 4294967295 gw                192.168.2.33@tcp2 up pri 0
sles15c01:/home/hornc/lustre-filesystem # lnetctl peer show -v 2 --nid 192.168.2.35@tcp1 | egrep -e nid -e health
    - primary nid: 192.168.2.34@tcp1
        - nid: 192.168.2.34@tcp1
          health stats:
              health value: 1000
        - nid: 192.168.2.35@tcp1
          health stats:
              health value: 1000
sles15c01:/home/hornc/lustre-filesystem # lnetctl peer set --health 0 --nid 192.168.2.35@tcp1
sles15c01:/home/hornc/lustre-filesystem # lnetctl peer show -v 2 --nid 192.168.2.35@tcp1 | egrep -e nid -e health
    - primary nid: 192.168.2.34@tcp1
        - nid: 192.168.2.34@tcp1
          health stats:
              health value: 1000
        - nid: 192.168.2.35@tcp1
          health stats:
              health value: 0
sles15c01:/home/hornc/lustre-filesystem # sleep 30
sles15c01:/home/hornc/lustre-filesystem # lnetctl peer show -v 2 --nid 192.168.2.35@tcp1 | egrep -e nid -e health
    - primary nid: 192.168.2.34@tcp1
        - nid: 192.168.2.34@tcp1
          health stats:
              health value: 1000
        - nid: 192.168.2.35@tcp1
          health stats:
              health value: 0
sles15c01:/home/hornc/lustre-filesystem # lctl dk &amp;gt; /tmp/dk.log
sles15c01:/home/hornc/lustre-filesystem # grep lnet_handle_send /tmp/dk.log | grep -c TRACE
513
sles15c01:/home/hornc/lustre-filesystem # grep lnet_handle_send /tmp/dk.log | grep TRACE | grep -- &apos;-&amp;gt; 192.168.2.35@tcp1&apos;
sles15c01:/home/hornc/lustre-filesystem #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="65653">LU-14941</key>
            <summary>Remote NI recovery pings do not work in routed environment</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="1">Fixed</resolution>
                                        <assignee username="hornc">Chris Horn</assignee>
                                    <reporter username="hornc">Chris Horn</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Aug 2021 16:49:19 +0000</created>
                <updated>Tue, 30 Nov 2021 13:51:51 +0000</updated>
                            <resolved>Tue, 30 Nov 2021 13:51:51 +0000</resolved>
                                                    <fixVersion>Lustre 2.15.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="310903" author="gerrit" created="Mon, 23 Aug 2021 19:41:48 +0000"  >&lt;p&gt;&quot;Chris Horn &amp;lt;chris.horn@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/44730&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/44730&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14941&quot; title=&quot;Remote NI recovery pings do not work in routed environment&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14941&quot;&gt;&lt;del&gt;LU-14941&lt;/del&gt;&lt;/a&gt; lnet: Fix source specified to routed destination&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ebea8f20faf5ad20aace451de657452ad56aa023&lt;/p&gt;</comment>
                            <comment id="315867" author="hornc" created="Mon, 18 Oct 2021 15:49:08 +0000"  >&lt;p&gt;Test config:&lt;/p&gt;

&lt;p&gt;Router:&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;sles15s02:~ # lctl list_nids
192.168.2.32@tcp1
192.168.2.33@tcp2
sles15s02:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Clients:&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;sles15s01:~ # lctl list_nids
192.168.2.30@tcp2
192.168.2.31@tcp2
sles15s01:~ # lctl show_route
net               tcp1 hops 4294967295 gw                192.168.2.33@tcp2 up pri 0
sles15s01:~ #

sles15c01:~ # lctl list_nids
192.168.2.38@tcp1
192.168.2.39@tcp1
sles15c01:~ # lctl show_route
net               tcp2 hops 4294967295 gw                192.168.2.32@tcp1 up pri 0
sles15c01:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Send a couple messages from c01 to s01:&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;sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Check that we&apos;ve received messages from both s01&apos;s NIs:&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;sles15c01:~ # lctl dk | grep lnet_parse | egrep -e 192.168.2.30@tcp2 -e 192.168.2.31@tcp2
00000400:00000200:0.0:1629482198.234301:0:16222:0:(lib-move.c:4429:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.30@tcp2 : REPLY - for me
00000400:00000200:0.0:1629482198.234307:0:16222:0:(lib-move.c:4194:lnet_parse_reply()) 192.168.2.39@tcp1: Reply from 12345-192.168.2.30@tcp2 of length 64/64 into md 0x19
00000400:00000200:0.0:1629482198.235691:0:16222:0:(lib-move.c:4429:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.31@tcp2 : ACK - for me
00000400:00000200:0.0:1629482198.235695:0:16222:0:(lib-move.c:4247:lnet_parse_ack()) 192.168.2.39@tcp1: ACK from 12345-192.168.2.31@tcp2 into md 0x1d
00000400:00000200:0.0:1629482198.971600:0:16222:0:(lib-move.c:4429:lnet_parse()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1) &amp;lt;- 192.168.2.30@tcp2 : REPLY - for me
00000400:00000200:0.0:1629482198.971606:0:16222:0:(lib-move.c:4194:lnet_parse_reply()) 192.168.2.38@tcp1: Reply from 12345-192.168.2.30@tcp2 of length 64/64 into md 0x21
00000400:00000200:0.0:1629482199.940773:0:16222:0:(lib-move.c:4429:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.31@tcp2 : REPLY - for me
00000400:00000200:0.0:1629482199.940782:0:16222:0:(lib-move.c:4194:lnet_parse_reply()) 192.168.2.39@tcp1: Reply from 12345-192.168.2.31@tcp2 of length 64/64 into md 0x25
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Set health to 0:&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;sles15c01:~ # lnetctl peer set --health 0 --nid 192.168.2.30@tcp2
&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;sles15c01:~ # lctl dk | grep recovery
00000400:00000200:0.0:1629482216.841269:0:16310:0:(peer.c:4035:lnet_peer_ni_add_to_recoveryq_locked()) 192.168.2.30@tcp2 added to recovery queue. ping count: 0 next ping: 671368 last alive: 671349 health: 0
00000400:00000200:0.0:1629482217.032143:0:16202:0:(peer.c:4035:lnet_peer_ni_add_to_recoveryq_locked()) 192.168.2.30@tcp2 added to recovery queue. ping count: 1 next ping: 671370 last alive: 671349 health: 0
00000400:00000200:0.0:1629482217.032203:0:16222:0:(lib-move.c:3864:lnet_mt_event_handler()) 192.168.2.30@tcp2 recovery message sent successfully:0
00000400:00000200:0.0:1629482219.080116:0:16202:0:(peer.c:4035:lnet_peer_ni_add_to_recoveryq_locked()) 192.168.2.30@tcp2 added to recovery queue. ping count: 2 next ping: 671374 last alive: 671349 health: 0
00000400:00000200:0.0:1629482219.080213:0:16222:0:(lib-move.c:3864:lnet_mt_event_handler()) 192.168.2.30@tcp2 recovery message sent successfully:0
sles15c01:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We can see NI is now queued for recovery correctly. However, after some time the health still has not recovered:&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;sles15c01:~ # sleep 30
sles15c01:~ # lnetctl peer show -v 2 --nid 192.168.2.30@tcp2 | egrep -e nid -e health
    - primary nid: 192.168.2.30@tcp2
        - nid: 192.168.2.30@tcp2
          health stats:
              health value: 0
        - nid: 192.168.2.31@tcp2
          health stats:
              health value: 1000
sles15c01:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From debug log we can see that no recovery pings are being sent to the NI in recovery. Instead they are being sent to the healthy NI:&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;sles15c01:~ # grep lnet_handle_send /tmp/dk.log | grep TRACE | grep -- &apos;-&amp;gt; 192.168.2.30@tcp2&apos;
sles15c01:~ # grep lnet_handle_send /tmp/dk.log | grep TRACE | grep -- &apos;-&amp;gt; 192.168.2.31@tcp2&apos;
00000400:00000200:0.0:1629482844.232128:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629482846.280128:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629482850.376103:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629482858.568104:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629482874.952126:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629482906.696122:0:17222:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.31@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
sles15c01:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Re-test with the fix applied&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;sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
sles15c01:~ # lnetctl discover 192.168.2.30@tcp2
discover:
    - primary nid: 192.168.2.30@tcp2
      Multi-Rail: True
      peer ni:
        - nid: 192.168.2.30@tcp2
        - nid: 192.168.2.31@tcp2
sles15c01:~ # lctl dk | grep lnet_parse | egrep -e 192.168.2.30@tcp2 -e 192.168.2.31@tcp2
00000400:00000200:0.0:1629483126.305212:0:17591:0:(lib-move.c:4434:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.30@tcp2 : REPLY - for me
00000400:00000200:0.0:1629483126.305218:0:17591:0:(lib-move.c:4199:lnet_parse_reply()) 192.168.2.39@tcp1: Reply from 12345-192.168.2.30@tcp2 of length 64/64 into md 0x19
00000400:00000200:0.0:1629483126.306293:0:17591:0:(lib-move.c:4434:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.30@tcp2 : ACK - for me
00000400:00000200:0.0:1629483126.306299:0:17591:0:(lib-move.c:4252:lnet_parse_ack()) 192.168.2.39@tcp1: ACK from 12345-192.168.2.30@tcp2 into md 0x1d
00000400:00000200:0.0:1629483127.213996:0:17591:0:(lib-move.c:4434:lnet_parse()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1) &amp;lt;- 192.168.2.31@tcp2 : REPLY - for me
00000400:00000200:0.0:1629483127.214003:0:17591:0:(lib-move.c:4199:lnet_parse_reply()) 192.168.2.38@tcp1: Reply from 12345-192.168.2.31@tcp2 of length 64/64 into md 0x21
00000400:00000200:0.0:1629483128.216060:0:17591:0:(lib-move.c:4434:lnet_parse()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1) &amp;lt;- 192.168.2.30@tcp2 : REPLY - for me
00000400:00000200:0.0:1629483128.216067:0:17591:0:(lib-move.c:4199:lnet_parse_reply()) 192.168.2.39@tcp1: Reply from 12345-192.168.2.30@tcp2 of length 64/64 into md 0x25
sles15c01:~ # lnetctl peer set --health 0 --nid 192.168.2.30@tcp2
sles15c01:~ # lnetctl peer show -v 2 --nid 192.168.2.30@tcp2 | egrep -e nid -e health
    - primary nid: 192.168.2.30@tcp2
        - nid: 192.168.2.30@tcp2
          health stats:
              health value: 0
        - nid: 192.168.2.31@tcp2
          health stats:
              health value: 1000
sles15c01:~ # sleep 30
sles15c01:~ # lnetctl peer show -v 2 --nid 192.168.2.30@tcp2 | egrep -e nid -e health
    - primary nid: 192.168.2.30@tcp2
        - nid: 192.168.2.30@tcp2
          health stats:
              health value: 0
        - nid: 192.168.2.31@tcp2
          health stats:
              health value: 1000
sles15c01:~ # lctl dk &amp;gt; /tmp/dk.log
sles15c01:~ # grep lnet_handle_send /tmp/dk.log | grep TRACE | grep -- &apos;-&amp;gt; 192.168.2.30@tcp2&apos;
00000400:00000200:0.0:1629483137.480098:0:17571:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.30@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629483139.528115:0:17571:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.30@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629483143.624105:0:17571:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.30@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629483151.816108:0:17571:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.39@tcp1(192.168.2.39@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.30@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
00000400:00000200:0.0:1629483167.176149:0:17571:0:(lib-move.c:1907:lnet_handle_send()) TRACE: 192.168.2.38@tcp1(192.168.2.38@tcp1:&amp;lt;?&amp;gt;) -&amp;gt; 192.168.2.30@tcp2(192.168.2.30@tcp2:192.168.2.32@tcp1) &amp;lt;?&amp;gt; : GET try# 0
sles15c01:~ # grep lnet_handle_send /tmp/dk.log | grep TRACE | grep -- &apos;-&amp;gt; 192.168.2.31@tcp2&apos;
sles15c01:~ #
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We can see that the recovery pings are now going to the correct NI.&lt;/p&gt;</comment>
                            <comment id="319474" author="gerrit" created="Tue, 30 Nov 2021 03:47:34 +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/44730/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/44730/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14941&quot; title=&quot;Remote NI recovery pings do not work in routed environment&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14941&quot;&gt;&lt;del&gt;LU-14941&lt;/del&gt;&lt;/a&gt; lnet: Fix source specified to routed destination&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 98da4ace43a6c4c59e7981bf0fb649005237d12f&lt;/p&gt;</comment>
                            <comment id="319545" author="pjones" created="Tue, 30 Nov 2021 13:51:51 +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|i021tb:</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>