From d15865106ffbd37de07e5adea7c31a4e79b5fe5c Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Mon, 6 Feb 2012 14:04:37 -0800 Subject: [PATCH] scm: fix retry count on connection pending timeout Retry count not being decremented on connection TIMEOUT. Also, cleanup log messages on CONN and REP pending and add local port to output. Signed-off-by: Arlin Davis --- dapl/openib_scm/cm.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dapl/openib_scm/cm.c b/dapl/openib_scm/cm.c index a34965b..cac6a72 100644 --- a/dapl/openib_scm/cm.c +++ b/dapl/openib_scm/cm.c @@ -505,19 +505,18 @@ static void dapli_socket_connected(dp_ib_cm_handle_t cm_ptr, int err) struct dapl_ep *ep_ptr = cm_ptr->ep; if (err) { - dapl_log(DAPL_DBG_TYPE_WARN, - " CONN_REQUEST: %s ERR %s -> %s %d - %s %d\n", + dapl_log(DAPL_DBG_TYPE_CM_WARN, + " CONN_PENDING: %s ERR %s -> %s PORT L-%x R-%x %s cnt=%d\n", err == -1 ? "POLL" : "SOCKOPT", err == -1 ? strerror(dapl_socket_errno()) : strerror(err), - inet_ntoa(((struct sockaddr_in *) - &cm_ptr->addr)->sin_addr), - ntohs(((struct sockaddr_in *) - &cm_ptr->addr)->sin_port), + inet_ntoa(((struct sockaddr_in *)&cm_ptr->addr)->sin_addr), + ntohs(((struct sockaddr_in *)&cm_ptr->msg.daddr.so)->sin_port), + ntohs(((struct sockaddr_in *)&cm_ptr->addr)->sin_port), (err == ETIMEDOUT || err == ECONNREFUSED) ? "RETRYING...":"ABORTING", cm_ptr->retry); /* retry a timeout */ - if ((err == ETIMEDOUT) || (err == ECONNREFUSED && --cm_ptr->retry)) { + if (((err == ETIMEDOUT) || (err == ECONNREFUSED)) && --cm_ptr->retry) { closesocket(cm_ptr->socket); cm_ptr->socket = DAPL_INVALID_SOCKET; dapli_socket_connect(cm_ptr->ep, (DAT_IA_ADDRESS_PTR)&cm_ptr->addr, @@ -715,14 +714,15 @@ static void dapli_socket_connect_rtu(dp_ib_cm_handle_t cm_ptr) len = recv(cm_ptr->socket, (char *)&cm_ptr->msg, exp, 0); if (len != exp || ntohs(cm_ptr->msg.ver) < DCM_VER_MIN) { int err = dapl_socket_errno(); - dapl_log(DAPL_DBG_TYPE_WARN, - " CONN_RTU read: sk %d ERR 0x%x, rcnt=%d, v=%d -> %s PORT L-%x R-%x PID L-%x R-%x\n", + dapl_log(DAPL_DBG_TYPE_CM_WARN, + " CONN_REP_PENDING: sk %d ERR 0x%x, rcnt=%d, v=%d ->" + " %s PORT L-%x R-%x PID L-%x R-%x %d\n", cm_ptr->socket, err, len, ntohs(cm_ptr->msg.ver), inet_ntoa(((struct sockaddr_in *)&cm_ptr->addr)->sin_addr), ntohs(((struct sockaddr_in *)&cm_ptr->msg.daddr.so)->sin_port), ntohs(((struct sockaddr_in *)&cm_ptr->addr)->sin_port), ntohs(*(uint16_t*)&cm_ptr->msg.resv[0]), - ntohs(*(uint16_t*)&cm_ptr->msg.resv[2])); + ntohs(*(uint16_t*)&cm_ptr->msg.resv[2]),cm_ptr->retry); /* Retry; corner case where server tcp stack resets under load */ if (err == ECONNRESET && --cm_ptr->retry) { -- 2.46.0