Project

General

Profile

Actions

Bug #15118

open

[keepstore] Return 5xx (not 4xx) if block is not found due to transient backend device failure

Added by Tom Clegg over 3 years ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
Keep
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
-

Description

This was reported in #14804 but (judging by the code) the resulting change addressed only the specific example of Azure returning 503.

There are many other backend failure modes where "block not found" is the wrong response, like:
  • Azure returns 502, 418, etc. or times out
  • S3 returns 5xx
  • Filesystem returns EPERM
Drivers are expected to return errors that satisfy os.IsNotExist() when they determine that a block does not exist. It seems like the logic should be:
  • if all backends return 404 (os.IsNotExist(err)==true), then return 404
  • otherwise -- i.e., when other errors prevent us from determining whether the block exists -- return 502

Related issues

Related to Arvados - Bug #14804: [keepstore] Return 5xx (not 4xx) if block is not found due to transient backend device failureResolvedLucas Di Pentima02/22/2019

Actions
Actions #1

Updated by Tom Clegg over 3 years ago

  • Related to Bug #14804: [keepstore] Return 5xx (not 4xx) if block is not found due to transient backend device failure added
Actions #2

Updated by Peter Amstutz over 1 year ago

  • Target version deleted (To Be Groomed)
Actions

Also available in: Atom PDF