-
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
Future CI: F37 fails 'podman load compressed tar file' #15944
Comments
A lot of historical issues suggest that this is how podman says "out of disk space". Is it possible to check |
CI captures df output at the end of the integration (and system?) task, but doesn't log it during. That said, the VMs should start with 80+ GB free space, but it's possible the disk expansion mechanism broke... |
...heh, no I don't think this is the problem (df output), but it was wise to suggest checking, thanks!
|
This part of the error is curious:
Maybe something changed in go-land ( @mtrmac knows about image stuff...does this ring any bells for you? |
It doesn’t really ring any bells, and I don’t much understand how changing the build environment (without changing the Podman or c/image codebase at all, AFAICS) could make a difference here. If I had to guess, missing |
Fair point. Hmmm. It's possible gzip is missing, I can check that. Thanks for the suggestion. |
No, it's not missing gzip. I would go as far as to say that a UNIX system without gzip is impossible in 2022. This reproduces super-trivially: # podman pull quay.io/libpod/alpine:latest
...
# podman save -o /tmp/foo.tar alpine
...
# gzip /tmp/foo.tar
# podman load -i /tmp/foo.tar.gz
Error: payload does not match any of the supported image formats:
* oci: initializing source oci:/tmp/foo.tar.gz:: open /tmp/foo.tar.gz/index.json: not a directory
* oci-archive: loading index: open /var/tmp/oci3715535303/index.json: no such file or directory
* docker-archive: loading tar component manifest.json: archive/tar: invalid tar header
* dir: open /tmp/foo.tar.gz/manifest.json: not a directory podman-4.3.0~rc1-1.fc37.x86_64 |
Damn...well that probably rules out easy fixes I can do. |
Fails even with gzip-1.11-1.fc36.x86_64. Fails with podman-4.2.1-2.fc37.x86_64. Fails with podman built from source. |
Should we be asking: How did this ever pass? Maybe the test was disabled and recently re-enabled by accident or fluke? |
You’re right, this is clearly broken in c/image. Looking… |
It passed because we don't do CI on f37, and |
For context, I caught this in the e2e tests. What I meant in my comment above is...if it's a problem in the podman code (or a dependency), it seems strange it's been passing all along in F36. Since it has been, the problem must somehow be influenced by both the code AND the environment...which is hard to put my head around (in the context of the error). |
@mtrmac I wouldn't be so sure it's |
Does c/image interact with the system's gzip/tar or kernel in some way? Oof. I'm glad Dr. Miloslav is on the case 😀 |
Looking at the generated file, it seems almost exactly the first 1 MB of the decompressed data is just missing. Replacing the use of |
No difference if I downgrade to glibc-2.35.9000-32.fc37.x86_64, Here's the last bit of
|
@edsantiago There’s a bit of confusing Podman behavior: “payload does not match any of the supported image formats:” i.e. it blindly tries four different formats. The last one is definitely going to fail like that; we are interested in the |
Huh... okay, trimmed a little, istm that the untar is failing:
|
My current hypothesis is that this is Go 1.19 and
triggering a bug in pgzip’s Would it be trivially easy to try downgrading to Go 1.18 to see if that makes a difference? (If not, don’t do anything complicated, I can continue working from my end.) |
Oh, good thinking. With golang-1.18.4-1.fc37.x86_64 it works again. |
Downgrading in CI is a "hard sell" for me with the F37 images. I feel it's important that we're running the newer/native distro toolchain to catch things like this (since it will be used at rpmbuild time). I'm okay with leaving the test @mtrmac is this going to break your back? Should we start a conversation with upstream Fedora about "Don't use golang 1.19" in 37? |
Seems like the obvious solution is to fix |
I think the ultimately correct fix will be some variant of klauspost/pgzip#50 . There might be smaller workarounds we can do with more confidence in the meantime (e.g. wrap the code to make the FYI @mheon — current Podman is succeeding in tests, but |
(A hypothetical bigger worry is that the |
FWIW klauspost/pgzip#50 was merged; so we need it in all the top-level commands. |
Okay, so sounds like we're likely to hit the same/similar/related issues bringing F37 into other repo's CI. Dang 😞 |
Oops, didn't refresh before commenting. I'll rebase my PR w/o the test-skip and cross my fingers 🤞 |
Rebased my PR with these changes and force-pushed #15760. CI is running now. Thanks a bunch @mtrmac |
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
While attempting to update the CI VM images to F37 (beta), found this test is failing on most test-configurations.
Steps to reproduce the issue:
Describe the results you received:
Describe the results you expected:
Test should pass
Additional information you deem important (e.g. issue happens only occasionally):
Reproduces on:
int remote fedora-37 root host
int podman fedora-37 rootless host
int podman fedora-37 root host
int podman fedora-37 root container
Output of
podman version
:See below
Output of
podman info
: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/main/troubleshooting.md)
Yes
Additional environment details (AWS, VirtualBox, physical, etc.):
Annotated log
The text was updated successfully, but these errors were encountered: