Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up c/image/docker error handling #1363

Merged
merged 9 commits into from
Aug 26, 2021
Merged

Conversation

mtrmac
Copy link
Collaborator

@mtrmac mtrmac commented Aug 26, 2021

  • Start adding test cases for error handling
  • Refactor various small things that should not change behavior
  • Fix an outright bug, reading HTTP response body twice

Other than that bug, this is expected to affect neither error types nor text; it is the hopefully noncontroversial subset of #1299, leaving that PR to focus on the risky changes.

See individual commit messages for details.

mtrmac added 9 commits August 26, 2021 02:49
It's high time we started collecting error samples and
documenting what happens.

NOTE: This is NOT an API commitment, we can change the error
types and messages any time.

Signed-off-by: Miloslav Trmač <[email protected]>
We need at least a smoke test before refactoring the error
parser. Ideally we should have a full historical record.

Signed-off-by: Miloslav Trmač <[email protected]>
just to minimize repetition; the Reponse qualifier applies to
everything in that function, so it doesn't help.

Should not change behavior.

Signed-off-by: Miloslav Trmač <[email protected]>
github.com/docker/distribution is not using the github.com/pkg/errors
wrapping mechanism, and we don't expect them to start.

Should not change behavior.

Signed-off-by: Miloslav Trmač <[email protected]>
Body is guaranteed to be present in client's responses.

Should not change behavior.

Signed-off-by: Miloslav Trmač <[email protected]>
No point in handling them in generic code, and callers that
aren't expecting StatusPartialContent could be confused.

Should not change behavior of GetBlobAt; might in change behavior of
other callers if they unexpectedly received the relevant HTTP status
codes.

This ~mechanically moves the code without much restructuring.

Signed-off-by: Miloslav Trmač <[email protected]>
Make it harder to not use the right function.

Signed-off-by: Miloslav Trmač <[email protected]>
Don't immediately unwrap an error we have just wrapped.

Should not change behavior.

Signed-off-by: Miloslav Trmač <[email protected]>
registryHTTPResponseToError expects the response body to be available;
don't read it first.

Signed-off-by: Miloslav Trmač <[email protected]>
Copy link
Member

@vrothberg vrothberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rhatdan
Copy link
Member

rhatdan commented Aug 26, 2021

LGTM

@rhatdan rhatdan merged commit 44cfeaf into containers:main Aug 26, 2021
@mtrmac mtrmac deleted the errors-cleanup branch August 26, 2021 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants