Skip to content

CI is broken on loading / using frozen images on x86 #50655

@thaJeztah

Description

@thaJeztah

Description

relates to:


Debugging in these PRs:

CI appears to be broken w.r.t. the frozen images; could be either some path issue, or something else (could newer Dockerfile front-end use the new fancy sub-variants for x86 for example? TARGETVARIANT);

moby/Dockerfile

Lines 110 to 120 in 28df781

COPY contrib/download-frozen-image-v2.sh /
ARG TARGETARCH
ARG TARGETVARIANT
RUN /download-frozen-image-v2.sh /build \
busybox:latest@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209 \
busybox:glibc@sha256:1f81263701cddf6402afe9f33fca0266d9fff379e59b1748f33d3072da71ee85 \
debian:bookworm-slim@sha256:2bc5c236e9b262645a323e9088dfa3bb1ecb16cc75811daf40a23a824d665be9 \
hello-world:latest@sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9 \
arm32v7/hello-world:latest@sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1 \
hello-world:amd64@sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042 \
hello-world:arm64@sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343

Docker info doesn't show those;

   Kernel Version: 6.11.0-1018-azure
   Operating System: Ubuntu 24.04.2 LTS
   OSType: linux
   Architecture: x86_64

Integration tests;

Building test suite binary /go/src/github.com/docker/docker/integration/service/test.main
Building test suite binary /go/src/github.com/docker/docker/integration/session/test.main
Building test suite binary /go/src/github.com/docker/docker/integration/system/test.main
Building test suite binary /go/src/github.com/docker/docker/integration/volume/test.main
---> Making bundle: .integration-daemon-start (in bundles/test-integration)
Using test binary /usr/local/cli-integration/docker
# DOCKER_EXPERIMENTAL is set: starting daemon with experimental features enabled! 
Starting apparmor (via systemctl): apparmor.service.
Starting dockerd
INFO: Waiting for daemon to start...

Running integration-test (iteration 1)
Running /go/src/github.com/docker/docker/integration/build (amd64.docker.docker.integration.build) flags=-test.v -test.timeout=10m   -test.coverprofile=/go/src/github.com/docker/docker/bundles/test-integration/amd64-docker-docker-integration-build-coverage.out
panic: error loading frozen images: unable to resolve platform: unexpected end of JSON input

goroutine 1 [running, locked to thread]:
github.com/moby/moby/v2/integration/build.TestMain(0xc0000ce5a0)
	/go/src/github.com/docker/docker/integration/build/main_test.go:38 +0x1e9
main.main()
	_testmain.go:97 +0xa8

goroutine 12 [runnable]:
runtime.goexit1()
	/usr/local/go/src/runtime/proc.go:4313 +0x9d
runtime.goexit({})
	/usr/local/go/src/runtime/asm_amd64.s:1701 +0x6
created by go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp.(*client).contextWithStop in goroutine 7
	/go/src/github.com/docker/docker/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/client.go:382 +0xe5

goroutine 15 [IO wait]:
internal/poll.runtime_pollWait(0x7f895dfe8ed0, 0x72)
	/usr/local/go/src/runtime/netpoll.go:351 +0x85
internal/poll.(*pollDesc).wait(0xc00022d680?, 0xc00051d000?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00022d680, {0xc00051d000, 0x1000, 0x1000})
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x27a
net.(*netFD).Read(0xc00022d680, {0xc00051d000?, 0x408494?, 0x0?})
	/usr/local/go/src/net/fd_posix.go:55 +0x25
net.(*conn).Read(0xc00019a7c8, {0xc00051d000?, 0x40828f?, 0xc0005536e0?})
	/usr/local/go/src/net/net.go:194 +0x45
net/http.(*persistConn).Read(0xc0005505a0, {0xc00051d000?, 0x7f49c5?, 0x15c7500?})
	/usr/local/go/src/net/http/transport.go:2122 +0x47
bufio.(*Reader).fill(0xc00055c180)
	/usr/local/go/src/bufio/bufio.go:113 +0x103
bufio.(*Reader).Peek(0xc00055c180, 0x1)
	/usr/local/go/src/bufio/bufio.go:152 +0x53
net/http.(*persistConn).readLoop(0xc0005505a0)
	/usr/local/go/src/net/http/transport.go:2275 +0x172
created by net/http.(*Transport).dialConn in goroutine 13
	/usr/local/go/src/net/http/transport.go:1944 +0x174f

goroutine 16 [select]:
net/http.(*persistConn).writeLoop(0xc0005505a0)
	/usr/local/go/src/net/http/transport.go:2590 +0xe7
created by net/http.(*Transport).dialConn in goroutine 13
	/usr/local/go/src/net/http/transport.go:1945 +0x17a5

=== Failed

Tests;

=== RUN   TestBuildUserNamespaceValidateCapabilitiesAreV2
Loaded image: busybox:latest
Loaded image: busybox:glibc
Loaded image: debian:bookworm-slim
Error unpacking image debian:bookworm-slim: apply layer error for "docker.io/library/debian:bookworm-slim": wrong diff id calculated on extraction "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
Loaded image: hello-world:latest
Loaded image: arm32v7/hello-world:latest
Loaded image: hello-world:amd64
Loaded image: hello-world:arm64
    build_userns_linux_test.go:77: assertion failed: error is not nil: apply layer error for "": wrong diff id calculated on extraction "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
--- FAIL: TestBuildUserNamespaceValidateCapabilitiesAreV2 (0.89s)
FAIL

Error looks to come from containerd vendor; not sure why the i.Name() is empty, but maybe that's expected

for _, layer := range layers {
unpacked, err = rootfs.ApplyLayerWithOpts(ctx, layer, chain, sn, a, config.SnapshotOpts, config.ApplyOpts)
if err != nil {
return fmt.Errorf("apply layer error for %q: %w", i.Name(), err)

Also see #50292 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/testingkind/bugBugs are bugs. The cause may or may not be known at triage time so debugging may be needed.priority/P0Urgent: Security, critical bugs, blocking issues. drop everything until this issue is addressed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions