-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
improve error message on podman load
with disk full
#11730
Comments
Thanks for reaching out, @martinetd. I will improve on that. |
Thanks! |
When loading a path we have to "guess" the underlying format and hence attempt loading supported formats in a specific order. When all attempts have failed make sure that all loading errors are reported up, in addition to debug logs, such that users can parse them for useful information. Fixes: github.com/containers/podman/issues/11730 Signed-off-by: Valentin Rothberg <[email protected]>
I opened containers/common#784 to address the issue. The output now looks as follows:
|
Actually, the |
When loading a path we have to "guess" the underlying format and hence attempt loading supported formats in a specific order. When all attempts have failed make sure that all loading errors are reported up, in addition to debug logs, such that users can parse them for useful information. Fixes: github.com/containers/podman/issues/11730 Signed-off-by: Valentin Rothberg <[email protected]>
Ah, I had forgotten we're guessing the format here... I wonder if we could make a difference between "probing failed, try next format" error which would not report a message, and fatal-ish error (like ENOSPC) that would? It's probably hard to make the distinction in some cases though, I'm not sure it's a good idea. That being said, it's a net improvement -- at least more advanced users have something to look at in logs, so this is good enough for me. |
When loading a path we have to "guess" the underlying format and hence attempt loading supported formats in a specific order. When all attempts have failed make sure that all loading errors are reported up, in addition to debug logs, such that users can parse them for useful information. Fixes: github.com/containers/podman/issues/11730 Signed-off-by: Valentin Rothberg <[email protected]>
|
containers/common#784 merged and addressed the issue. Note that this will not make it into Podman 3.4 but the release after. |
When loading a path we have to "guess" the underlying format and hence attempt loading supported formats in a specific order. When all attempts have failed make sure that all loading errors are reported up, in addition to debug logs, such that users can parse them for useful information. Fixes: github.com/containers/podman/issues/11730 Signed-off-by: Valentin Rothberg <[email protected]>
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind feature
Description
podman load can fail with ENOSPC in a few places.
When failing reading an archive from stdin, it first copies it to /var/tmp and that has a reasonable error if FS is full (
Error: error copying file write /var/tmp/podman110002836: copy_file_range: no space left on device
), but in later steps there is no error indicating the FS is full, only a vague message saying the archive does not contain anything useful:Steps to reproduce the issue:
make a tiny /var/tmp and/or storage, and produce a large image file with podman save (afaiu first error is tmp, second storage)
podman load -i said image
observe error
Describe the results you received:
difficult to understand error message.
Describe the results you expected:
the string "no space left on device" or equivalent should be present
Additional information you deem important (e.g. issue happens only occasionally):
Semi-unrelated, note that in this case the person who contacted me had 6.2GB free, for a 2.8GB image -- that's more than 2 times the image size, so they did not suspect ENOSPC at all.
Using
podman load -i file.tar
instead ofpodman load < file.tar
reduces the image requirement from a factor 3 to 2 (iff the tar is not compressed), but that is still a severe limitation for usage on embedded devices with constrained space. We're basically telling our customers that, yes, they have over 6GB available in the container partition but they can only ever have containers as big as ~3GB because we can't import bigger layers. (well the image could be split in layers imported one at a time...)I looked at the code to see if streaming tar content would be possible instead of storing an intermediate copy in /var/tmp but that does not look easy (looking at
containers/image/v5/docker/internal/tarfile/reader.go
), is there interest in making streaming possible? I might be able to spend some time on it early next year.Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide? (https://github.com/containers/podman/blob/master/troubleshooting.md)
No
Additional environment details (AWS, VirtualBox, physical, etc.):
embedded arm64 system
The text was updated successfully, but these errors were encountered: