From 88916949efc207dd46346f05c047c9b6511c0224 Mon Sep 17 00:00:00 2001 From: Erik Sipsma Date: Thu, 9 Jun 2022 18:47:13 -0700 Subject: [PATCH] build: force unlazy of refs by calling extract Signed-off-by: Erik Sipsma --- builder/builder-next/exporter/export.go | 4 ++++ builder/builder-next/worker/worker.go | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/builder/builder-next/exporter/export.go b/builder/builder-next/exporter/export.go index ee945a1150..e138a6f235 100644 --- a/builder/builder-next/exporter/export.go +++ b/builder/builder-next/exporter/export.go @@ -160,6 +160,10 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp exporter.Source, return nil, layersDone(err) } + if err := ref.Extract(ctx, nil); err != nil { + return nil, err + } + diffIDs, err := e.opt.Differ.EnsureLayer(ctx, ref.ID()) if err != nil { return nil, layersDone(err) diff --git a/builder/builder-next/worker/worker.go b/builder/builder-next/worker/worker.go index 4cb559ede7..af980bfbfc 100644 --- a/builder/builder-next/worker/worker.go +++ b/builder/builder-next/worker/worker.go @@ -228,7 +228,7 @@ func (w *Worker) Exporter(name string, sm *session.Manager) (exporter.Exporter, } // GetRemote returns a remote snapshot reference for a local one -func (w *Worker) GetRemote(ctx context.Context, ref cache.ImmutableRef, createIfNeeded bool, _ compression.Type, _ session.Group) (*solver.Remote, error) { +func (w *Worker) GetRemote(ctx context.Context, ref cache.ImmutableRef, createIfNeeded bool, _ compression.Type, s session.Group) (*solver.Remote, error) { var diffIDs []layer.DiffID var err error if !createIfNeeded { @@ -240,6 +240,9 @@ func (w *Worker) GetRemote(ctx context.Context, ref cache.ImmutableRef, createIf if err := ref.Finalize(ctx); err != nil { return nil, err } + if err := ref.Extract(ctx, s); err != nil { + return nil, err + } diffIDs, err = w.Layers.EnsureLayer(ctx, ref.ID()) if err != nil { return nil, err