-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
podman run --rm : Error forwarding signal 23 to container, plus stacktrace #5034
Comments
Looking into it. Installing a rawhide VM atm. |
Very curious to see a SIGURG flying around O.o |
When stopping signal handling (e.g., to properly handle ^C) we are also closing the signal channel. We should really return from the go-routine instead of continuing and risking double-closing the channel which leads to a panic. Fixes: containers#5034 Signed-off-by: Valentin Rothberg <[email protected]>
I'm seeing this again on rawhide, but (1) on
Somewhat reliable reproducer:
podman-1.8.0-0.3.dev.git5092c07.fc32.x86_64 |
Are we sure what's sending these SIGURGs? There is a narrow timing window when they could be coming in, after the container dies but before we retrieve the exit code and exit, which would cause this. |
I'm not sure of anything. I have no idea what's going on here. What info can I provide? |
Running something in the container that catches signals and prints when they're received, then seeing if a container in steady-state is getting any, might help; I'm wondering if this is something caused by the container exiting, or we just have something hitting us with SIGURG |
Oh, interesting:
|
And: # podman run alpine sh -c 'for i in $(seq 3 40|grep -v 17);do trap "echo got: $i" $i; done; echo READY; while ! test -e /stop; do sleep 0.05; done'
READY
[wait 2 seconds, then ^C]
^CERRO[0002] Error forwarding signal 23 to container 59e2607049414b43514651244cd5ceffb23cc8b0fdfb057089d78d4548d9969a: can only kill running containers. 59e2607049414b43514651244cd5ceffb23cc8b0fdfb057089d78d4548d9969a is in state stopped: container state improper (Note that in the above I deliberately do not trap 2) |
Well, here's an interesting difference: # strace -ff -o /tmp/foo.strace podman run --rm alpine date On f30: # grep 'kill.*URG' /tmp/foo.strace.*
[nothing] On rawhide: # grep 'kill.*URG' /tmp/foo.strace.*
/tmp/foo.strace.57521:tgkill(57520, 57520, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57520, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57522, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57618, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57618, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57618, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57521:tgkill(57520, 57549, SIGURG) = 0
/tmp/foo.strace.57549:kill(57520, SIGURG) = 0
/tmp/foo.strace.57557:tgkill(57556, 57556, SIGURG) = 0
/tmp/foo.strace.57631:tgkill(57629, 57629, SIGURG) = 0
/tmp/foo.strace.57631:tgkill(57629, 57629, SIGURG) = 0 |
Could this be golang-1.14-0.rc1.0.fc32.x86_64 |
It could very well be golang. We had issues with 1.13 alpha and beta at the times as wel. |
Hopefully it gets updated in F32. Which is built with the alpha version. |
@baude, I built podman from master (2b2996d); f32 with golang-1.14-1.fc32. Good news: cannot reproduce the problem using any of the above setups. Bad news: I get a weird error on # ./bin/podman run alpine sh -c 'sleep 20' Now, from another shell: ERRO[0013] Cannot get exit code: died not found: unable to find event
# echo $?
127 The number in brackets is often different: 0013, 0012, 0017. |
A friendly reminder that this issue had no activity for 30 days. |
This has been fixed in the meanwhile, closing. |
On rawhide:
podman-1.7.1-0.66.dev.git36af283.fc32.x86_64
conmon-2.0.11-0.3.dev.gitccfdbb6.fc32.x86_64
5.5.0-0.rc6.git3.1.fc32.x86_64
The text was updated successfully, but these errors were encountered: