forked from TrueCloudLab/distribution
Merge pull request #2176 from stevvooe/clean-empty-blob-comments
registry/storage: clean up zero-length blob comments
This commit is contained in:
commit
fb0bebc4b6
2 changed files with 6 additions and 6 deletions
|
@ -530,7 +530,7 @@ func TestLayerUploadZeroLength(t *testing.T) {
|
||||||
}
|
}
|
||||||
bs := repository.Blobs(ctx)
|
bs := repository.Blobs(ctx)
|
||||||
|
|
||||||
simpleUpload(t, bs, []byte{}, digestSha256EmptyTar)
|
simpleUpload(t, bs, []byte{}, digestSha256Empty)
|
||||||
}
|
}
|
||||||
|
|
||||||
func simpleUpload(t *testing.T, bs distribution.BlobIngester, blob []byte, expectedDigest digest.Digest) {
|
func simpleUpload(t *testing.T, bs distribution.BlobIngester, blob []byte, expectedDigest digest.Digest) {
|
||||||
|
|
|
@ -19,8 +19,8 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// DigestSha256EmptyTar is the canonical sha256 digest of empty data
|
// digestSha256Empty is the canonical sha256 digest of empty data
|
||||||
digestSha256EmptyTar = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
digestSha256Empty = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
)
|
)
|
||||||
|
|
||||||
// blobWriter is used to control the various aspects of resumable
|
// blobWriter is used to control the various aspects of resumable
|
||||||
|
@ -314,7 +314,7 @@ func (bw *blobWriter) moveBlob(ctx context.Context, desc distribution.Descriptor
|
||||||
// If no data was received, we may not actually have a file on disk. Check
|
// If no data was received, we may not actually have a file on disk. Check
|
||||||
// the size here and write a zero-length file to blobPath if this is the
|
// the size here and write a zero-length file to blobPath if this is the
|
||||||
// case. For the most part, this should only ever happen with zero-length
|
// case. For the most part, this should only ever happen with zero-length
|
||||||
// tars.
|
// blobs.
|
||||||
if _, err := bw.blobStore.driver.Stat(ctx, bw.path); err != nil {
|
if _, err := bw.blobStore.driver.Stat(ctx, bw.path); err != nil {
|
||||||
switch err := err.(type) {
|
switch err := err.(type) {
|
||||||
case storagedriver.PathNotFoundError:
|
case storagedriver.PathNotFoundError:
|
||||||
|
@ -322,8 +322,8 @@ func (bw *blobWriter) moveBlob(ctx context.Context, desc distribution.Descriptor
|
||||||
// get a hash, then the underlying file is deleted, we risk moving
|
// get a hash, then the underlying file is deleted, we risk moving
|
||||||
// a zero-length blob into a nonzero-length blob location. To
|
// a zero-length blob into a nonzero-length blob location. To
|
||||||
// prevent this horrid thing, we employ the hack of only allowing
|
// prevent this horrid thing, we employ the hack of only allowing
|
||||||
// to this happen for the digest of an empty tar.
|
// to this happen for the digest of an empty blob.
|
||||||
if desc.Digest == digestSha256EmptyTar {
|
if desc.Digest == digestSha256Empty {
|
||||||
return bw.blobStore.driver.PutContent(ctx, blobPath, []byte{})
|
return bw.blobStore.driver.PutContent(ctx, blobPath, []byte{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue