Skip to content

Commit daeb882

Browse files
committed
Merged moby#40268
1 parent fe65607 commit daeb882

3 files changed

Lines changed: 11 additions & 5 deletions

File tree

integration/image/remove_unix_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ func TestRemoveImageGarbageCollector(t *testing.T) {
8888

8989
// Run imageService.Cleanup() and make sure that layer was removed from disk
9090
i.Cleanup()
91-
dir, err = os.Stat(data["UpperDir"])
92-
assert.ErrorContains(t, err, "no such file or directory")
91+
_, err = os.Stat(data["UpperDir"])
92+
assert.Assert(t, os.IsNotExist(err))
93+
94+
// Make sure that removal pending layers does not exist on layerdb either
95+
layerdbItems, _ := ioutil.ReadDir(filepath.Join(d.RootDir(), "/image/overlay2/layerdb/sha256"))
96+
for _, folder := range layerdbItems {
97+
assert.Equal(t, false, strings.HasSuffix(folder.Name(), "-removing"))
98+
}
9399
}

layer/filestore.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ func (fms *fileMetadataStore) Remove(layer ChainID, cache string) error {
403403
return err
404404
}
405405
for _, f := range files {
406-
if !strings.HasSuffix(f.Name(), "-removing") || !strings.HasPrefix(f.Name(), dgst.String()) {
406+
if !strings.HasSuffix(f.Name(), "-removing") || !strings.HasPrefix(f.Name(), dgst.Encoded()) {
407407
continue
408408
}
409409

layer/layer_store.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,11 +419,11 @@ func (ls *layerStore) Map() map[ChainID]Layer {
419419
func (ls *layerStore) deleteLayer(layer *roLayer, metadata *Metadata) error {
420420
// Rename layer digest folder first so we detect orphan layer(s)
421421
// if ls.driver.Remove fails
422-
dir := ls.store.getLayerDirectory(layer.chainID)
422+
var dir string
423423
for {
424424
dgst := digest.Digest(layer.chainID)
425425
tmpID := fmt.Sprintf("%s-%s-removing", dgst.Hex(), stringid.GenerateRandomID())
426-
dir := filepath.Join(ls.store.root, string(dgst.Algorithm()), tmpID)
426+
dir = filepath.Join(ls.store.root, string(dgst.Algorithm()), tmpID)
427427
err := os.Rename(ls.store.getLayerDirectory(layer.chainID), dir)
428428
if os.IsExist(err) {
429429
continue

0 commit comments

Comments
 (0)