From 435b500de73dec7caa8241b17e42783cc6706739 Mon Sep 17 00:00:00 2001 From: Arve Knudsen Date: Wed, 8 Mar 2023 21:58:09 +0100 Subject: [PATCH] remote: Convert to RecoverableError using errors.As (#12103) In storage/remote, try converting to RecoverableError using errors.As, instead of through direct casting. Signed-off-by: Arve Knudsen --- storage/remote/client_test.go | 8 ++++---- storage/remote/queue_manager.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/storage/remote/client_test.go b/storage/remote/client_test.go index 9c99b292e3..2f954a0b9f 100644 --- a/storage/remote/client_test.go +++ b/storage/remote/client_test.go @@ -109,10 +109,11 @@ func TestClientRetryAfter(t *testing.T) { RetryOnRateLimit: false, } + var recErr RecoverableError + c := getClient(conf) err = c.Store(context.Background(), []byte{}) - _, ok := err.(RecoverableError) - require.False(t, ok, "Recoverable error not expected.") + require.False(t, errors.As(err, &recErr), "Recoverable error not expected.") conf = &ClientConfig{ URL: &config_util.URL{URL: serverURL}, @@ -122,8 +123,7 @@ func TestClientRetryAfter(t *testing.T) { c = getClient(conf) err = c.Store(context.Background(), []byte{}) - _, ok = err.(RecoverableError) - require.True(t, ok, "Recoverable error was expected.") + require.True(t, errors.As(err, &recErr), "Recoverable error was expected.") } func TestRetryAfterDuration(t *testing.T) { diff --git a/storage/remote/queue_manager.go b/storage/remote/queue_manager.go index 7ea81ae8fc..773b2ef378 100644 --- a/storage/remote/queue_manager.go +++ b/storage/remote/queue_manager.go @@ -1569,8 +1569,8 @@ func sendWriteRequestWithBackoff(ctx context.Context, cfg config.QueueConfig, l } // If the error is unrecoverable, we should not retry. - backoffErr, ok := err.(RecoverableError) - if !ok { + var backoffErr RecoverableError + if !errors.As(err, &backoffErr) { return err }