[ewg] [PATCH 07/15] uDAPL v2.0 scm: fix retry count on connection pending timeout
Davis, Arlin R
arlin.r.davis at intel.com
Mon Apr 23 13:00:59 PDT 2012
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 <arlin.r.davis at intel.com>
---
dapl/openib_scm/cm.c | 20 ++++++++++----------
1 files 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) {
--
1.7.3
More information about the ewg
mailing list