Creating a separate issue for #2095 (comment) for better tracking.
After fix for adding the parent directories for whiteouts #2095 the originally reported testcase for that PR in buildkit fails to create diff tarballs, failing with error: failed to solve: rpc error: code = Unknown desc = failed calculaing diff pairs for exported snapshot: mount callback failed on /tmp/containerd-WithTempMount737087017: mount callback failed on /tmp/containerd-WithTempMount631635316: failed to write compressed diff: failed to create diff tar stream: stat /tmp/containerd-WithTempMount631635316/usr/share/aclocal-1.15: no such file or directory
stacktrace:
time="2018-02-09T11:56:52-08:00" level=error msg="/moby.buildkit.v1.Control/Solve returned error: stat /tmp/containerd-WithTempMount631635316/usr/share/aclocal-1.15: no such file or directory
failed to create diff tar stream
github.com/moby/buildkit/vendor/github.com/containerd/containerd/archive.WriteDiff
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/archive/tar.go:62
github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking.(*walkingDiff).Compare.func1.1
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking/differ.go:99
github.com/moby/buildkit/vendor/github.com/containerd/containerd/mount.WithTempMount
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/mount/mount.go:71
github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking.(*walkingDiff).Compare.func1
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking/differ.go:66
github.com/moby/buildkit/vendor/github.com/containerd/containerd/mount.WithTempMount
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/mount/mount.go:71
github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking.(*walkingDiff).Compare
/home/dev2/data/go/src/github.com/moby/buildkit/vendor/github.com/containerd/containerd/diff/walking/differ.go:65
github.com/moby/buildkit/cache/blobs.GetDiffPairs.func2.1
Reproducing dockerfile (same as #2094):
FROM golang:1.9.3-alpine3.7
RUN apk add --no-cache --virtual .builddeps automake
RUN apk del .builddeps
It seems that the stat error comes from the includeParent() call that was added by the fix, but in this case, it calls stat with a path that doesn't exist anymore.
@dmcgowan
Creating a separate issue for #2095 (comment) for better tracking.
After fix for adding the parent directories for whiteouts #2095 the originally reported testcase for that PR in buildkit fails to create diff tarballs, failing with
error: failed to solve: rpc error: code = Unknown desc = failed calculaing diff pairs for exported snapshot: mount callback failed on /tmp/containerd-WithTempMount737087017: mount callback failed on /tmp/containerd-WithTempMount631635316: failed to write compressed diff: failed to create diff tar stream: stat /tmp/containerd-WithTempMount631635316/usr/share/aclocal-1.15: no such file or directorystacktrace:
Reproducing dockerfile (same as #2094):
It seems that the stat error comes from the
includeParent()call that was added by the fix, but in this case, it calls stat with a path that doesn't exist anymore.@dmcgowan