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 5 years ago. Updated almost 2 years ago.

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

0%

Estimated time:
Story points:
-
Release:
Release relationship:
Auto

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 1 (0 open1 closed)

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 5 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 3 years ago

  • Target version deleted (To Be Groomed)
Actions #3

Updated by Lucas Di Pentima almost 2 years ago

  • Release set to 60
Actions

Also available in: Atom PDF