storage icon indicating copy to clipboard operation
storage copied to clipboard

Newer buildah claims that zstd:chunked layers pushed with older buildah don't have tar-split data (but they do)

Open kbr- opened this issue 9 months ago • 3 comments

I have two versions of buildah, one installed from ubuntu 24 repos, one built locally

$ buildah --version
buildah version 1.33.7 (image-spec 1.1.0-rc.5, runtime-spec 1.1.0)
$ ~/go/bin/buildah --version
buildah version 1.39.0 (image-spec 1.1.0, runtime-spec 1.2.0)

pulled ubuntu:24.10 image, then pushed it to local docker registry while compressing with zstd:chunked, using the old buildah:

buildah pull ubuntu:24.10
buildah push --tls-verify=false --compression-format zstd:chunked ubuntu:24.10 docker://localhost:5000/img

cleared the image from local storage

buildah rmi ubuntu:24.10

now pulling with newer buildah

~/go/bin/buildah --log-level trace --tls-verify=false pull docker://localhost:5000/img

with enable_partial_images = true

The trace logs show:

DEBU[0000] Failed to retrieve partial blob: zstd:chunked layers without tar-split data don't support partial pulls with guaranteed consistency with non-partial pulls 

claiming that the layer doesn't have tar-split data. But it does...

$ skopeo inspect --tls-verify=false docker://localhost:5000/img --raw | jq '.layers[].annotations'
{
  "io.github.containers.zstd-chunked.manifest-checksum": "sha256:22c0216bd28cebc2c6bb5469e9950ae75c712dc77c67d324fc09350e153f8918",
  "io.github.containers.zstd-chunked.manifest-position": "32664085:380036:2043318:1",
  "io.github.containers.zstd-chunked.tarsplit-checksum": "sha256:87dc0ad2400e2f96c6705c3f2eed3377904cf94759a9887298934db4955f7da1",
  "io.github.containers.zstd-chunked.tarsplit-position": "33044129:151529:3784936"
}

pulling it with the same version that was used to build works (uses the partial blob pull logic)

Is the storage format still being changed? Or is this a bug?

kbr- avatar Mar 19 '25 14:03 kbr-