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>
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;
}