Project

General

Profile

Actions

Bug #3419

closed

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

Added by Tom Clegg over 10 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
-
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 2 (0 open2 closed)

Task #3956: Add num_retries arguments throughout Perl SDKClosed09/23/2014Actions
Task #3957: crunch-job uses num_retries support in Perl SDKClosed09/23/2014Actions

Related issues 2 (0 open2 closed)

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.ResolvedBrett Smith08/22/2014Actions
Related to Arvados - Bug #3910: [SDKs] Client libraries should retry failed API requests after errors like Gateway Timeout (part 2)Closed09/17/2014Actions
Actions #1

Updated by Tom Clegg over 10 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)
Actions #2

Updated by Tom Clegg over 10 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
Actions #3

Updated by Radhika Chippada over 10 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.

Actions #4

Updated by Peter Amstutz over 10 years ago

  • Target version set to Arvados Future Sprints
Actions #5

Updated by Tom Clegg over 10 years ago

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

Updated by Tom Clegg over 10 years ago

  • Description updated (diff)
Actions #7

Updated by Tom Clegg over 10 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)
Actions #8

Updated by Brett Smith over 10 years ago

  • Assigned To set to Brett Smith
Actions #9

Updated by Brett Smith about 10 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.

Actions #10

Updated by Ward Vandewege about 10 years ago

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

Updated by Tom Morris about 8 years ago

  • Assigned To changed from Brett Smith to Tom Morris
Actions #12

Updated by Tom Morris about 8 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

Actions

Also available in: Atom PDF