From: Michael Meffie Date: Tue, 20 Aug 2013 20:48:34 +0000 (-0400) Subject: bozo: cap retry delay X-Git-Tag: upstream/1.8.0_pre1^2~998 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=21c8f4809ee7af9d2ec76cb37747183cee0c0d33;p=packages%2Fo%2Fopenafs.git bozo: cap retry delay Cap the retry delay to a reasonable amount of time instead of just doubling the delay until it reaches 16 hours. Change-Id: Ibc7dd75670a9b02f34050842b6e54df4f5a7c315 Reviewed-on: http://gerrit.openafs.org/10148 Reviewed-by: Andrew Deason Reviewed-by: Benjamin Kaduk Reviewed-by: Derrick Brashear Tested-by: BuildBot --- diff --git a/src/bozo/bnode.c b/src/bozo/bnode.c index 6f8f99b14..752747482 100644 --- a/src/bozo/bnode.c +++ b/src/bozo/bnode.c @@ -32,6 +32,7 @@ #define BNODE_LWP_STACKSIZE (16 * 1024) #define BNODE_ERROR_COUNT_MAX 16 /* maximum number of retries */ +#define BNODE_ERROR_DELAY_MAX 60 /* maximum retry delay (seconds) */ int bnode_waiting = 0; static PROCESS bproc_pid; /* pid of waker-upper */ @@ -657,9 +658,12 @@ bproc(void *unused) } else { tb->errorStopCount++; if (!tb->errorStopDelay) { - tb->errorStopDelay = 1; + tb->errorStopDelay = 1; /* wait a second, then retry */ } else { - tb->errorStopDelay *= 2; + tb->errorStopDelay *= 2; /* ramp up the retry delays */ + } + if (tb->errorStopDelay > BNODE_ERROR_DELAY_MAX) { + tb->errorStopDelay = BNODE_ERROR_DELAY_MAX; /* cap the delay */ } } tb->flags |= BNODE_ERRORSTOP;