Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

composefs: committing the finished image: failed to put layer using a partial pull: rename xxx/diff: no such file or directory #1915

Open
edsantiago opened this issue Apr 25, 2024 · 3 comments · May be fixed by #1916
Assignees
Labels

Comments

@edsantiago
Copy link
Collaborator

The gist seems to be:

# podman-remote [something that does a pull]
Error: committing the finished image: \
    failed to put layer using a partial pull: \
    rename /var/lib/containers/storage/overlay/staging/1464572085 \
        /var/lib/containers/storage/overlay/SHA/diff: \
    no such file or directory

Seems to be remote-only.

Been trying all afternoon to reproduce this. I can't. So here are links to failure logs:

@edsantiago
Copy link
Collaborator Author

f39 rootless:

[+0817s] not ok 356 [200] podman pod create should fail when infra-name is already in use
...
<+195ms> # $ podman-remote --url unix:///tmp/podman_tmp_ktBx --noout pod create --name nifusgth72 --infra-name infra_container_z257ixa6bk --infra-image quay.io/libpod/k8s-pause:3.5
<+1.29s> # Error: failed to make pod: committing the finished image: failed to put layer using a partial pull: rename /home/some16421dude/.local/share/containers/storage/overlay/staging/2329401209 /home/some16421dude/.local/share/containers/storage/overlay/dee215ffc666313e1381d3e6e4299a4455503735b8df31c3fa161d2df50860a8/diff: no such file or directory

f39 root:

[+0792s] not ok 279 [120] podman load - from URL
...
<+055ms> # # podman-remote --url unix:///tmp/podman_tmp_pBmm run -d --name myweb -p 5340:80 -v /tmp/podman_bats.xc2Uar/myimage-nlhjn08D.tar:/var/www/image.tar:Z -w /var/www quay.io/libpod/testimage:20240123 /bin/busybox-extras httpd -f -p 80
<+1.98s> # Trying to pull quay.io/libpod/testimage:20240123...
         # Getting image source signatures
         # Copying blob sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
         # Copying blob sha256:abbb4fed5b1fdc439f1f0138b257ea2ae6a69ddf7d9508eaf6ab268636b0a842
         # Copying config sha256:1f6acd4c4a1d4d39395870e1c12dbb68da27dd432afecf86e7cb6e23cf4b75d0
         # Writing manifest to image destination
         # Error: committing the finished image: failed to put layer using a partial pull: rename /var/lib/containers/storage/overlay/staging/3873943774 /var/lib/containers/storage/overlay/25a964f60e84b2d24f8098376c985a5c057bea74d699ee50c93e417c26516cc3/diff: no such file or directory

@giuseppe giuseppe transferred this issue from containers/podman Apr 29, 2024
@giuseppe
Copy link
Member

we should not be so aggressive to cleanup the staging directory:

_ = os.RemoveAll(filepath.Join(d.home, stagingDir))

I am not sure yet how to address it, I'll keep working on this

giuseppe added a commit to giuseppe/storage that referenced this issue Apr 30, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
giuseppe added a commit to giuseppe/storage that referenced this issue Apr 30, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
@giuseppe giuseppe linked a pull request Apr 30, 2024 that will close this issue
@giuseppe
Copy link
Member

giuseppe commented Apr 30, 2024

opened a PR:

giuseppe added a commit to giuseppe/storage that referenced this issue Apr 30, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
giuseppe added a commit to giuseppe/storage that referenced this issue Apr 30, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
giuseppe added a commit to giuseppe/storage that referenced this issue May 2, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
giuseppe added a commit to giuseppe/storage that referenced this issue May 2, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
giuseppe added a commit to giuseppe/storage that referenced this issue May 2, 2024
lock any staging directory while it is being used so that another
process cannot delete it.

Now the Cleanup() function deletes only the staging directories that
are not locked by any other user.

Closes: containers#1915

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
@mohanboddu mohanboddu added the jira label May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants