aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-06-19 18:13:32 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-06-19 18:51:32 +0200
commit1c969611ba962a860744b2718fa6f989e7be5165 (patch)
treefa71dffca527267bc78720e17d8704c70d7567dc /src/libstore
parent00aa7c6705c073aab8b24ae945ea9a09d5d256aa (diff)
Suppress "will retry in N ms" for non-retriable errors
Newer versions of aws-sdk-cpp call CalculateDelayBeforeNextRetry() even for non-retriable errors (like NoSuchKey) whih causes log spam in hydra-queue-runner.
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/s3-binary-cache-store.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libstore/s3-binary-cache-store.cc b/src/libstore/s3-binary-cache-store.cc
index 39d98cd61..f57227f02 100644
--- a/src/libstore/s3-binary-cache-store.cc
+++ b/src/libstore/s3-binary-cache-store.cc
@@ -86,12 +86,13 @@ S3Helper::S3Helper(const string & region)
/* Log AWS retries. */
class RetryStrategy : public Aws::Client::DefaultRetryStrategy
{
- long CalculateDelayBeforeNextRetry(const Aws::Client::AWSError<Aws::Client::CoreErrors>& error, long attemptedRetries) const override
+ bool ShouldRetry(const Aws::Client::AWSError<Aws::Client::CoreErrors>& error, long attemptedRetries) const override
{
- auto res = Aws::Client::DefaultRetryStrategy::CalculateDelayBeforeNextRetry(error, attemptedRetries);
- printError("AWS error '%s' (%s), will retry in %d ms",
- error.GetExceptionName(), error.GetMessage(), res);
- return res;
+ auto retry = Aws::Client::DefaultRetryStrategy::ShouldRetry(error, attemptedRetries);
+ if (retry)
+ printError("AWS error '%s' (%s), will retry in %d ms",
+ error.GetExceptionName(), error.GetMessage(), CalculateDelayBeforeNextRetry(error, attemptedRetries));
+ return retry;
}
};