Skip to content

Commit 2d454e2

Browse files
fixed context issue
Signed-off-by: Xiaoxuan Wang <[email protected]>
1 parent 942cc4d commit 2d454e2

File tree

2 files changed

+17
-28
lines changed

2 files changed

+17
-28
lines changed

content/oci/oci.go

+6
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,9 @@ func (s *Store) traverseIndex(ctx context.Context) (set.Set[digest.Digest], erro
465465
queue := []ocispec.Descriptor{}
466466
queue = append(queue, manifests...)
467467
for len(queue) > 0 {
468+
if err := isContextDone(ctx); err != nil {
469+
return nil, err
470+
}
468471
head := queue[0]
469472
queue = queue[1:]
470473
if visited.Contains(head.Digest) {
@@ -521,6 +524,9 @@ func (s *Store) GC(ctx context.Context) error {
521524
return err
522525
}
523526
for _, dgstDir := range dgstDirs {
527+
if err := isContextDone(ctx); err != nil {
528+
return err
529+
}
524530
dgst := dgstDir.Name()
525531
blobDigest := digest.NewDigestFromEncoded(digest.Algorithm(alg), dgst)
526532
err := blobDigest.Validate()

content/oci/oci_test.go

+11-28
Original file line numberDiff line numberDiff line change
@@ -2914,20 +2914,11 @@ func TestStore_GC(t *testing.T) {
29142914
generateManifest(descs[0], &descs[13], descs[1]) // Blob 16, referrer of a garbage manifest
29152915

29162916
// push blobs 0 - blobs 10 into s
2917-
eg, egCtx := errgroup.WithContext(ctx)
29182917
for i := 0; i <= 10; i++ {
2919-
eg.Go(func(i int) func() error {
2920-
return func() error {
2921-
err := s.Push(egCtx, descs[i], bytes.NewReader(blobs[i]))
2922-
if err != nil {
2923-
return fmt.Errorf("failed to push test content to src: %d: %v", i, err)
2924-
}
2925-
return nil
2926-
}
2927-
}(i))
2928-
}
2929-
if err := eg.Wait(); err != nil {
2930-
t.Fatal(err)
2918+
err := s.Push(ctx, descs[i], bytes.NewReader(blobs[i]))
2919+
if err != nil {
2920+
t.Errorf("failed to push test content to src: %d: %v", i, err)
2921+
}
29312922
}
29322923

29332924
// remove blobs 4 - blobs 10 from index.json
@@ -2939,23 +2930,15 @@ func TestStore_GC(t *testing.T) {
29392930
// push blobs 11 - blobs 16 into s.storage, making them garbage as their metadata
29402931
// doesn't exist in s
29412932
for i := 11; i < len(blobs); i++ {
2942-
eg.Go(func(i int) func() error {
2943-
return func() error {
2944-
err := s.storage.Push(egCtx, descs[i], bytes.NewReader(blobs[i]))
2945-
if err != nil {
2946-
return fmt.Errorf("failed to push test content to src: %d: %v", i, err)
2947-
}
2948-
return nil
2949-
}
2950-
}(i))
2951-
}
2952-
if err := eg.Wait(); err != nil {
2953-
t.Fatal(err)
2933+
err := s.storage.Push(ctx, descs[i], bytes.NewReader(blobs[i]))
2934+
if err != nil {
2935+
t.Errorf("failed to push test content to src: %d: %v", i, err)
2936+
}
29542937
}
29552938

29562939
// confirm that all the blobs are in the storage
29572940
for i := 11; i < len(blobs); i++ {
2958-
exists, err := s.Exists(egCtx, descs[i])
2941+
exists, err := s.Exists(ctx, descs[i])
29592942
if err != nil {
29602943
t.Fatal(err)
29612944
}
@@ -2965,14 +2948,14 @@ func TestStore_GC(t *testing.T) {
29652948
}
29662949

29672950
// perform GC
2968-
if err = s.GC(egCtx); err != nil {
2951+
if err = s.GC(ctx); err != nil {
29692952
t.Fatal(err)
29702953
}
29712954

29722955
// verify existence
29732956
wantExistence := []bool{true, true, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false}
29742957
for i, wantValue := range wantExistence {
2975-
exists, err := s.Exists(egCtx, descs[i])
2958+
exists, err := s.Exists(ctx, descs[i])
29762959
if err != nil {
29772960
t.Fatal(err)
29782961
}

0 commit comments

Comments
 (0)