From 6caa6ed07df0ec40f8cb0e13441ab4b0baf90297 Mon Sep 17 00:00:00 2001 From: Chris Horn Date: Sat, 15 Jun 2019 11:23:24 -0500 Subject: [PATCH] LU-12440 lnet: Misleading error from lnet_is_health_check 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 Change-Id: I56b1f2aa98945939e4b7ae8266de66cf27f35869 Reviewed-on: https://review.whamcloud.com/35235 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Amir Shehata Reviewed-by: Alexandr Boyko Reviewed-by: Oleg Drokin --- lnet/lnet/lib-msg.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lnet/lnet/lib-msg.c b/lnet/lnet/lib-msg.c index 445d5a2..0c630f3 100644 --- a/lnet/lnet/lib-msg.c +++ b/lnet/lnet/lib-msg.c @@ -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; } -- 1.8.3.1