Whamcloud - gitweb
LU-12440 lnet: Misleading error from lnet_is_health_check 35/35235/4
authorChris Horn <hornc@cray.com>
Sat, 15 Jun 2019 16:23:24 +0000 (11:23 -0500)
committerOleg Drokin <green@whamcloud.com>
Tue, 30 Jul 2019 06:07:27 +0000 (06:07 +0000)
In the case of sending to 0@lo we never set msg_txpeer nor
msg_rxpeer. This results in failing this lnet_is_health_check
condition and a misleading error message. The condition is only an
error the msg status is non-zero.

An additional case where we can have msg_rx_committed, but not
msg_rxpeer is for optimized GETs. In this case we allocate a reply
message but do not set msg_rxpeer.  We cannot perform further health
checking on this message, but it is not an error condition.

Test-parameters: trivial
Signed-off-by: Chris Horn <hornc@cray.com>
Change-Id: I56b1f2aa98945939e4b7ae8266de66cf27f35869
Reviewed-on: https://review.whamcloud.com/35235
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Amir Shehata <ashehata@whamcloud.com>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/lnet/lib-msg.c

index 445d5a2..0c630f3 100644 (file)
@@ -855,8 +855,13 @@ lnet_is_health_check(struct lnet_msg *msg)
 
        if ((msg->msg_tx_committed && !msg->msg_txpeer) ||
            (msg->msg_rx_committed && !msg->msg_rxpeer)) {
-               CDEBUG(D_NET, "msg %p failed too early to retry and send\n",
-                      msg);
+               /* The optimized GET case does not set msg_rxpeer, but status
+                * could be zero. Only print the error message if we have a
+                * non-zero status.
+                */
+               if (status)
+                       CDEBUG(D_NET, "msg %p status %d cannot retry\n", msg,
+                              status);
                return false;
        }