Project

General

Profile

Actions

Bug #21023

closed

Go keepclient retry does not wait between retries

Added by Peter Amstutz 8 months ago. Updated 17 days ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Story points:
2.0
Release:
Release relationship:
Auto

Description

In sdk/go/keepclient getOrHead(), when a request fails with a retryable error, we don't wait between retries. We should use a randomized exponential backoff for congestion control similar to what we did with the API client.

This was found when looking at a program that talked to keep directly and made so many keepstore requests that it filled up the request queue, then started getting 503 errors. Because keepclient retried immediately instead of waiting, it did not give the overwhelmed keepstore a chance to drain its own queue and catch up.


Subtasks 1 (0 open1 closed)

Task #21404: Review 21023-keepclient-retry-delayResolvedTom Clegg02/13/2024Actions

Related issues

Related to Arvados - Feature #19972: Go arvados.Client retry with backoffResolvedTom Clegg03/08/2023Actions
Actions

Also available in: Atom PDF