Skip to content

GET errors after partial data #4075

Description

@cthulhu-rider

what is the difference b/w returning a status error from InitGetObjectStream and returning a status from the reader later?

Originally posted by @carpawell in #4067

i propose to review all GET code on the topic of reaction to a status error following some non-empty data. Currently, GET stream can end with any status. But this is not valid in all cases

there are 3 normal results:

  1. everything is OK: server streams [header] + [payload] with OK status in all response messages
  2. object is unavailable (not found, removed, etc.): server responds with corresponding status with no data
  3. stream cannot be finished: server responds with INTERNAL or CONTEXT status

usually client or proxy node just pipes data as it goes

but some cases can be confusing. For example:

  1. header is received
  2. several chunks are received, but not all
  3. 404/removed/other status

in these cases, when SN is a client working w/ container placement generally including multiple servers, it should abort the stream. For normal cases above, SN can memorize the progress and continue w/ reserve server

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    I4No visible changesS3Minimally significantU2Seriously plannedblockedCan't be done because of somethingenhancementImproving existing functionalityneofs-storageStorage node application issues

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions