Bug #3419

[SDKs] Perl client library should retry failed API requests after errors like Gateway Timeout

Added by Tom Clegg about 5 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
-
Start date:
09/23/2014
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
1.0

Description

Most importantly, crunch-job must try hard to avoid throwing away a long-running job due to a transient failure.


Subtasks

Task #3956: Add num_retries arguments throughout Perl SDKClosed

Task #3957: crunch-job uses num_retries support in Perl SDKClosed


Related issues

Related to Arvados - Bug #3147: [SDKs] Python clients should automatically retry failed API and Keep requests (including timeouts), in order to survive temporary outages like server restarts and network blips.Resolved08/22/2014

Related to Arvados - Bug #3910: [SDKs] Client libraries should retry failed API requests after errors like Gateway Timeout (part 2)Closed09/17/2014

History

#1 Updated by Tom Clegg about 5 years ago

  • Subject changed from [SDK] Ruby and CLI libraries should retry failed API requests after errors like Gateway Timeout to [SDK] Client libraries should retry failed API requests after errors like Gateway Timeout
  • Description updated (diff)

#2 Updated by Tom Clegg about 5 years ago

  • Subject changed from [SDK] Client libraries should retry failed API requests after errors like Gateway Timeout to [SDKs] Client libraries should retry failed API requests after errors like Gateway Timeout
  • Category set to SDKs

#3 Updated by Radhika Chippada about 5 years ago

I think it is desirable that we create a separate bug for each of the client libraries. This helps with reviewing, testing. That way we can also divvy up the work more effectively.

#4 Updated by Peter Amstutz about 5 years ago

  • Target version set to Arvados Future Sprints

#5 Updated by Tom Clegg about 5 years ago

  • Target version changed from Arvados Future Sprints to 2014-10-08 sprint

#6 Updated by Tom Clegg about 5 years ago

  • Description updated (diff)

#7 Updated by Tom Clegg about 5 years ago

  • Subject changed from [SDKs] Client libraries should retry failed API requests after errors like Gateway Timeout to [SDKs] Perl client library should retry failed API requests after errors like Gateway Timeout
  • Description updated (diff)

#8 Updated by Brett Smith about 5 years ago

  • Assigned To set to Brett Smith

#9 Updated by Brett Smith almost 5 years ago

I think the general approach is:

  • Add a num_retries argument to Arvados::Request::process_request. It handles the actual retry loop (a la Python), backing off between requests that should be retried.
  • Add num_retries arguments to Arvados::ResourceMethod::execute and the save, update_attributes, and reload methods of Arvados::ResourceProxy. These should simply be propagated down to the appropriate lower calls, so they reach Arvados::Request. This should be a "keyword argument" in the methods that already take those.

It's not expressly specified but I figure this story wants to see crunch-job use this support.

#10 Updated by Ward Vandewege almost 5 years ago

  • Target version changed from 2014-10-08 sprint to Arvados Future Sprints

#11 Updated by Tom Morris almost 3 years ago

  • Assigned To changed from Brett Smith to Tom Morris

#12 Updated by Tom Morris almost 3 years ago

  • Status changed from New to Closed
  • Assigned To deleted (Tom Morris)
  • Target version deleted (Arvados Future Sprints)

Done at some point in the past

Also available in: Atom PDF