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

Status:
New
Priority:
Normal
Assigned To:
-
Category:
Keep
Target version:
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

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

Updated by Tom Clegg almost 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 2 years ago

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

Updated by Peter Amstutz about 1 year ago

  • Release set to 60
Actions #4

Updated by Peter Amstutz 27 days ago

  • Target version set to Future
Actions

Also available in: Atom PDF