From 04edff80213099fd4065c323d1a20b49ddabee3a Mon Sep 17 00:00:00 2001 From: Aleksey Myasnikov Date: Tue, 18 Mar 2025 13:13:09 +0300 Subject: [PATCH 1/4] Fixed BackoffTimeout_ overflow --- ydb/public/sdk/cpp/client/iam/common/iam.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ydb/public/sdk/cpp/client/iam/common/iam.h b/ydb/public/sdk/cpp/client/iam/common/iam.h index d52412309375..3eca7d122231 100644 --- a/ydb/public/sdk/cpp/client/iam/common/iam.h +++ b/ydb/public/sdk/cpp/client/iam/common/iam.h @@ -168,7 +168,11 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider { RequestInflight_ = false; sleepDuration = std::min(BackoffTimeout_, BACKOFF_MAX); - BackoffTimeout_ *= 2; + if (BackoffTimeout_ < BACKOFF_MAX/2) { + BackoffTimeout_ *= 2; + } else { + BackoffTimeout_ = BACKOFF_MAX; + } } Sleep(sleepDuration); From d0133c5025707f21c6ae52cb848603fb69fc2b80 Mon Sep 17 00:00:00 2001 From: Aleksey Myasnikov Date: Tue, 18 Mar 2025 16:04:33 +0300 Subject: [PATCH 2/4] Update ydb/public/sdk/cpp/client/iam/common/iam.h Co-authored-by: Bulat --- ydb/public/sdk/cpp/client/iam/common/iam.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ydb/public/sdk/cpp/client/iam/common/iam.h b/ydb/public/sdk/cpp/client/iam/common/iam.h index 3eca7d122231..337d40522c02 100644 --- a/ydb/public/sdk/cpp/client/iam/common/iam.h +++ b/ydb/public/sdk/cpp/client/iam/common/iam.h @@ -168,11 +168,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider { RequestInflight_ = false; sleepDuration = std::min(BackoffTimeout_, BACKOFF_MAX); - if (BackoffTimeout_ < BACKOFF_MAX/2) { - BackoffTimeout_ *= 2; - } else { - BackoffTimeout_ = BACKOFF_MAX; - } + BackoffTimeout_ = std::min(BackoffTimeout_ * 2, BACKOFF_MAX); } Sleep(sleepDuration); From 92bc9c0ff790de94d30be898197cff4dfed22670 Mon Sep 17 00:00:00 2001 From: Aleksey Myasnikov Date: Tue, 18 Mar 2025 16:07:10 +0300 Subject: [PATCH 3/4] Update iam.h --- ydb/public/sdk/cpp/src/client/iam/common/iam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ydb/public/sdk/cpp/src/client/iam/common/iam.h b/ydb/public/sdk/cpp/src/client/iam/common/iam.h index 6020a7624c1e..0c7cc7978de9 100644 --- a/ydb/public/sdk/cpp/src/client/iam/common/iam.h +++ b/ydb/public/sdk/cpp/src/client/iam/common/iam.h @@ -126,7 +126,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider { RequestInflight_ = false; sleepDuration = std::min(BackoffTimeout_, BACKOFF_MAX); - BackoffTimeout_ *= 2; + BackoffTimeout_ *= std::min(BackoffTimeout_*2, BACKOFF_MAX); } Sleep(sleepDuration); From 373a85cd1f1ed98cfcacc16482728ed9c38ce913 Mon Sep 17 00:00:00 2001 From: Aleksey Myasnikov Date: Wed, 19 Mar 2025 02:34:50 +0300 Subject: [PATCH 4/4] Update ydb/public/sdk/cpp/src/client/iam/common/iam.h Co-authored-by: Bulat --- ydb/public/sdk/cpp/src/client/iam/common/iam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ydb/public/sdk/cpp/src/client/iam/common/iam.h b/ydb/public/sdk/cpp/src/client/iam/common/iam.h index 0c7cc7978de9..244d18426830 100644 --- a/ydb/public/sdk/cpp/src/client/iam/common/iam.h +++ b/ydb/public/sdk/cpp/src/client/iam/common/iam.h @@ -126,7 +126,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider { RequestInflight_ = false; sleepDuration = std::min(BackoffTimeout_, BACKOFF_MAX); - BackoffTimeout_ *= std::min(BackoffTimeout_*2, BACKOFF_MAX); + BackoffTimeout_ = std::min(BackoffTimeout_ * 2, BACKOFF_MAX); } Sleep(sleepDuration);