From: Jeffrey Altman Date: Mon, 11 May 2009 15:16:32 +0000 (+0000) Subject: DEVEL15-windows-hard-and-idle-dead-timeouts-20090511 X-Git-Tag: openafs-devel-1_5_60~70 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1c7cc2997122d02a6e76fc6f38511c41864642e4;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-hard-and-idle-dead-timeouts-20090511 LICENSE MIT Fix conditional test that assigns value to idleDeadTimeout Modify event log message to indicate timeout could be either a hard or an idle timeout. As described in the source comments, do not retry on a hard or idle timeout. (cherry picked from commit f5a97a145e09a16a9b2d3ab485f33f520235b7e9) --- diff --git a/src/WINNT/afsd/afsd_eventmessages.mc b/src/WINNT/afsd/afsd_eventmessages.mc index 53f48a618..37c76a0be 100644 --- a/src/WINNT/afsd/afsd_eventmessages.mc +++ b/src/WINNT/afsd/afsd_eventmessages.mc @@ -163,7 +163,7 @@ Severity=Warning Facility=System SymbolicName=MSG_RX_HARD_DEAD_TIME_EXCEEDED Language=English -Hard Dead Time exceeded when communicating with server %1 +Hard or Idle Dead Time exceeded when communicating with server %1 . MessageId= diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index cabdf9029..cc70fb93f 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -107,7 +107,7 @@ void cm_InitConn(void) HardDeadtimeout = (unsigned short) RDRtimeout; afsi_log("HardDeadTimeout is %d", HardDeadtimeout); } - if (ConnDeadtimeout == 0) { + if (IdleDeadtimeout == 0) { IdleDeadtimeout = (unsigned short) RDRtimeout; afsi_log("IdleDeadTimeout is %d", IdleDeadtimeout); } @@ -604,7 +604,8 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, /* RX codes */ else if (errorCode == RX_CALL_TIMEOUT) { - /* server took longer than hardDeadTime + /* RPC took longer than hardDeadTime or the server + * reported idle for longer than idleDeadTime * don't mark server as down but don't retry * this is to prevent the SMB session from timing out * In addition, we log an event to the event log @@ -620,11 +621,10 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp, LogEvent(EVENTLOG_WARNING_TYPE, MSG_RX_HARD_DEAD_TIME_EXCEEDED, addr); - osi_Log1(afsd_logp, "cm_Analyze: hardDeadTime exceeded addr[%s]", + osi_Log1(afsd_logp, "cm_Analyze: hardDeadTime or idleDeadTime exceeded addr[%s]", osi_LogSaveString(afsd_logp,addr)); reqp->tokenIdleErrorServp = serverp; reqp->idleError++; - retry = 1; } } else if (errorCode >= -64 && errorCode < 0) {