Windows: Make idle dead timeout very long
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 28 Dec 2011 22:08:23 +0000 (17:08 -0500)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 31 Dec 2011 21:17:07 +0000 (13:17 -0800)
The idle dead timeout processing must eventually be removed
from Rx for initiators.  In the meantime, make the timeout period
ten times longer than the hard dead timeout.  This permits eventual
failure when the server doesn't respond in ten minutes but avoids
more transient issues.

Change-Id: Ia673666dd55b33c4375ee8fdcbb89c82e8b01185
Reviewed-on: http://gerrit.openafs.org/6440
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>

src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_conn.h

index e9c0f0f..c5a10b0 100644 (file)
@@ -158,7 +158,7 @@ void cm_InitConn(void)
                 afsi_log("HardDeadTimeout is %d", HardDeadtimeout);
             }
             if (IdleDeadtimeout == 0) {
-                IdleDeadtimeout = (unsigned short) ConnDeadtimeout;
+                IdleDeadtimeout = 10 * (unsigned short) HardDeadtimeout;
                 afsi_log("IdleDeadTimeout is %d", IdleDeadtimeout);
             }
         } else {
@@ -1238,6 +1238,8 @@ static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
                                     secIndex);
     rx_SetConnDeadTime(tcp->rxconnp, ConnDeadtimeout);
     rx_SetConnHardDeadTime(tcp->rxconnp, HardDeadtimeout);
+
+    /* Disable Idle Dead Timeout processing as it can lead to data corruption. */
     rx_SetConnIdleDeadTime(tcp->rxconnp, IdleDeadtimeout);
 
     /*
index a1ddb1a..d40a8e8 100644 (file)
@@ -25,8 +25,8 @@
 #endif
 
 #define CM_CONN_IFS_HARDDEADTIME       120
-#define CM_CONN_IFS_CONNDEADTIME        50
-#define CM_CONN_IFS_IDLEDEADTIME        50
+#define CM_CONN_IFS_CONNDEADTIME        60
+#define CM_CONN_IFS_IDLEDEADTIME      1200
 
 extern unsigned short ConnDeadtimeout;
 extern unsigned short HardDeadtimeout;