8000 Add code to handle pagination of parts. Fixes max layer size of 10GB bug by bainsy88 · Pull Request #2815 · distribution/distribution · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Add code to handle pagination of parts. Fixes max layer size of 10GB bug #2815

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

Merged
merged 1 commit into from
Mar 16, 2021

Conversation

bainsy88
Copy link
Contributor

No description provided.

@GordonTheTurtle
Copy link

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:

$ git clone -b "issue_2814" git@github.com:bainsy88/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

Signed-off-by: Jack Baines <jack.baines@uk.ibm.com>
@codecov
Copy link
codecov bot commented Jan 14, 2019

Codecov Report

Merging #2815 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #2815   +/-   ##
=======================================
  Coverage   60.25%   60.25%           
=======================================
  Files         103      103           
  Lines        8024     8024           
=======================================
  Hits         4835     4835           
  Misses       2546     2546           
  Partials      643      643
Flag Coverage Δ
#linux 60.25% <ø> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 91b0f05...bda7921. Read the comment docs.

@@ -587,11 +587,20 @@ func (d *driver) Writer(ctx context.Context, path string, append bool) (storaged
if err != nil {
return nil, parseError(path, err)
}
var multiSize int64
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This multiSize was never used so is redundant code. The size is calculated by the calling function

@@ -549,9 +549,9 @@ func (d *driver) Reader(ctx context.Context, path string, offset int64) (io.Read

// Writer returns a FileWriter which will store the content written to it
// at the location designated by "path" after the call to Commit.
func (d *driver) Writer(ctx context.Context, path string, append bool) (storagedriver.FileWriter, error) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Setting a variable with the name append overwrites the built-in function which meant I couldn't use it further down.

Copy link
Contributor
@caervs caervs left a comment

Choose a reason for hiding this comment

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

Execution LGTM but we should test before merging

@bainsy88
Copy link
Contributor Author

Yeah, agree on testing. I have manually tested for what it's worth. The reason for no unit tests up front is just time constraints, looks like there isn't a framework for mocking out S3 calls at the moment, so would be a fair chunk of work to get that implemented. The S3 interface is huge as well which doesn't make it very easy!

@beanssoft
Copy link

Hi guys! is there a time frame to get this done? I got an use case that precisely needs of this feature enabled, thanks!

@dmcgowan dmcgowan added this to the Registry/2.8 milestone Jun 2, 2020
Copy link
Contributor
@arkodg arkodg left a comment

Choose a reason for hiding this comment

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

@milosgajdos
Copy link
Member

@bainsy88 is there some public image I can test this on? Would be good to get this merged in.

Base automatically changed from master to main January 27, 2021 15:51
Copy link
Collaborator
@dmcgowan dmcgowan left a comment

Choose a reason for hiding this comment

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

LGTM

@Vad1mo
Copy link
Contributor
Vad1mo commented Mar 3, 2022

I still see problems when pushing layers bigger then 10GB:

/usr/bin/registry_DO_NOT_USE_GC -v    
/usr/bin/registry_DO_NOT_USE_GC github.com/docker/distribution v2.8.0

I tried to push (my repo with 10gb sample files)

  • docker pull vad1mo/10gb-random-file:multilayer 10 layer a 1GB result: WORKS 🎉
  • docker pull vad1mo/10gb-random-file:latest 1 layer a 10 GB result: FAIL 🔥

@oingooing
Copy link

hi,
It has been merged, but it seems that it has not been released yet.
I want to patch self, how can I do that?
Do you have any patch files?

davidspek pushed a commit to pluralsh/distribution that referenced this pull request May 3, 2023
Add code to handle pagination of parts. Fixes max layer size of 10GB bug
davidspek pushed a commit to pluralsh/distribution that referenced this pull request May 3, 2023
Add code to handle pagination of parts. Fixes max layer size of 10GB bug

Signed-off-by: David van der Spek <vanderspek.david@gmail.com>
davidspek pushed a commit to pluralsh/distribution that referenced this pull request May 9, 2023
Add code to handle pagination of parts. Fixes max layer size of 10GB bug

Signed-off-by: David van der Spek <vanderspek.david@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants
0