From b924f0b5ce5e97d43bd3400a92c1ae77ccf1ab5c Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 7 Feb 2023 17:48:56 -0800 Subject: [PATCH] cache: add fallback for snapshotID In older BuildKit versions snapshotID was not always set if record was not created with GetByBlob method. Old code defaulted to cache record ID in that case but that broke with the metadata interface refactor. Signed-off-by: Tonis Tiigi (cherry picked from commit 2c0c429530e20aac317a65c72acec42f0da44b0f) --- cache/metadata.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cache/metadata.go b/cache/metadata.go index d6410fd554db..82209a93c0f9 100644 --- a/cache/metadata.go +++ b/cache/metadata.go @@ -251,7 +251,13 @@ func (md *cacheMetadata) queueMediaType(str string) error { } func (md *cacheMetadata) getSnapshotID() string { - return md.GetString(keySnapshot) + sid := md.GetString(keySnapshot) + // Note that historic buildkit releases did not always set the snapshot ID. + // Fallback to record ID is needed for old build cache compatibility. + if sid == "" { + return md.ID() + } + return sid } func (md *cacheMetadata) queueSnapshotID(str string) error {