mirror of
https://github.com/aws-actions/configure-aws-credentials.git
synced 2026-09-03 06:05:04 +09:00
feat: Improve debug logging in retry logic (#1485)
This commit is contained in:
+15
-4
@@ -185,15 +185,26 @@ export async function retryAndBackoff<T>(
|
|||||||
return await fn();
|
return await fn();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!isRetryable) {
|
if (!isRetryable) {
|
||||||
|
core.debug(`retryAndBackoff: error is not retryable: ${errorMessage(err)}`);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
// It's retryable, so sleep and retry.
|
// It's retryable, so sleep and retry.
|
||||||
await sleep(Math.random() * (2 ** retries * base));
|
const delay = Math.random() * (2 ** retries * base);
|
||||||
retries += 1;
|
const nextRetry = retries + 1;
|
||||||
if (retries >= maxRetries) {
|
|
||||||
|
core.debug(
|
||||||
|
`retryAndBackoff: attempt ${nextRetry} of ${maxRetries} failed: ${errorMessage(err)}. ` +
|
||||||
|
`Retrying after ${Math.floor(delay)}ms.`,
|
||||||
|
);
|
||||||
|
|
||||||
|
await sleep(delay);
|
||||||
|
|
||||||
|
if (nextRetry >= maxRetries) {
|
||||||
|
core.debug('retryAndBackoff: reached max retries; giving up.');
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
return await retryAndBackoff(fn, isRetryable, maxRetries, retries, base);
|
|
||||||
|
return await retryAndBackoff(fn, isRetryable, maxRetries, nextRetry, base);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user