-
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
Parricide #8066
Comments
strace causes it to lock up completely. |
This happens even without bash exiting on a bad exit code. |
I've not tested trying to use podman without the docker compatibility wrapper. |
@TomSweeneyRedHat PTAL |
strace with -f locks up but without is fine to try to find what stops it. podman-2.1.1-4.el8.x86_64 Because of the silent death it's not obvious this is happening until things just don't update except for half way. I think it also happened once with run as well (I use that to build the software in a separate build container). The last thing strace sees is this:
|
It doesn't seem to happen with...
The bash history is filled with this version from another dev who seems to have stumbled upon the work around and not mentioned anything. It looks like it probably is draining the pipe from the process that's running it when it shouldn't be. |
@nalind @edsantiago PTAL |
It's a buildah bug: it is gobbling stdin that does not belong to it. Trivial reproducer (Containerfile is left as an exercise for the reader): $ printf "echo hi\r\nbuildah bud -t foo .\necho bye\n" | bash
hi
STEP 1: ...
...
<sha> (the 'echo bye' is gobbled up by buildah). If you redirect stdin on the buildah command, it works as expected: $ printf "echo hi\r\nbuildah bud -t foo . </dev/null\necho bye\n" | bash
hi
...
bye Someone should file a buildah issue (I can, on request). podman has a long history of stdin-gobbling bugs; I'm pretty sure @mheon and @baude have experience dealing with them, I can CC them in case the fix is non-obvious. |
@edsantiago Please do file a Buildah bug. |
Fixes: containers/podman#8066 Is reporting that buildah is eating stdin. I don't beleive we should be using stdin when doing a buildah bud command unless `buildah bud -` is specified. After this PR, the `-` Dockerfile is still handled. Signed-off-by: Daniel J Walsh <[email protected]>
Fixes: containers/podman#8066 Is reporting that buildah is eating stdin. I don't beleive we should be using stdin when doing a buildah bud command unless `buildah bud -` is specified. After this PR, the `-` Dockerfile is still handled. Signed-off-by: Daniel J Walsh <[email protected]>
I have my own make system which generates the entire dependency tree of commands needed to fully build and upload a set of images.
It may produce something like this:
I would then pipe that into bash, for example...
dump_make_commands | bash
With podman it seems to just stop after one of the build commands inexplicably.
This never happens with docker.
At first the obvious cause might be a different exit code on success but I see none of the normal signs of that. The exit code of the parent is 0 as though it finished properly.
It's as though podman is somehow either signalling the child to gracefully die with a success code or it's closing the parent pipe gracefully by mistake.
It's almost home time for now but I may later try...
strace
it and look to the end later (though it creates massive noise to reach the right point) to see why it's mysteriously exiting.Running it in double bash.
I don't think this was happening until one of the more recent updates though I'm not entirely sure.
The text was updated successfully, but these errors were encountered: