-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
runc init hang #2530
Comments
Can you give an example of this happening? Also it seems to me -- at least from your description -- like the issue is that |
This seems like strange behaviour -- if you run a program with its stdio as a pipe, it's reasonable to expect that the calling program should read from the pipe frequently. From runc we could work around this by increasing the buffer size of stdio if we're called under a pipe but that is not a good idea to do generally -- there might be a reason why the caller has set the pipe buffer to a particular size. Containerd should (at least based on the description) be reading from the fifo regularly, use a regular file as stdio for runc, or increase the fifo buffer size to be large enough for runc's stack trace output. Is there a bug open in containerd for this issue? |
Not yet. If containerd read from the pipe before waiting the runc process to exit, this behaviour should disappear too. I will open an issue in containerd |
Docker version 19.03.2, build 6a30dfc We get into a similar problem:
and linux kernel panic soon by
but we don't know why, hope help. |
/cc |
watch |
The same with you, so do you have solved this problem ? |
I get the same problem with runc init hanging, however I dont see any kernel panics. If i try to strace the ./runc init pid, it just makes it exit, and the container does not start. and i get And if i kill the Server is using CentOS 7
|
I'm running into this same exact problem on Ubuntu 18.04, seems to happen intermittently on some of our machines - containers get created but won't start, process tree shows $ uname -a
Linux <REDACTED> 5.4.0-1039-aws #41~18.04.1-Ubuntu SMP Fri Feb 26 11:20:14 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ docker version
Client: Docker Engine - Community
Version: 20.10.5
API version: 1.41
Go version: go1.13.15
Git commit: 55c4c88
Built: Tue Mar 2 20:18:05 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.5
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 363e9a8
Built: Tue Mar 2 20:16:00 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0 |
Another interesting note is that if you kill the
Also if I try and |
@cseufert we're on 5.4.0, updated my |
I wonder if its this commit: I am tempted to try and drop in runc |
So it turns out for us the root cause of this issue was saturated disk throughput (we were exhausting our EBS burst credits), which makes sense given that this issue seems to be related to backlogged pipes. |
same issue containerd/containerd#5280 |
I tried that and it finally solved my problem. |
I ended up dropping in the rc92 binaries and yes, its seems to be working fine. |
We have fixed what I believe to be the root cause of this issue in 1.0.0-rc94 (though you should update to 1.0.0-rc95 since it fixes a security issue). The PR was #2871. |
Actually the original issue pre-dates the issue fixed by #2871, but there has been no update from the original reporter so I'm keeping this closed (the original issue looked as though containerd was not reading from the container's stdio pipes). |
Has this issue been solved or not because I am having this issue with my PC and it is quite annoying to hard reset the pc |
runc exec will hang when the runc init cmd receive an abort signal and the err msg is large than 65536 before execv executed.
By default, containerd start exec proess and set its stderr to a pipe. runc init will hang when err msg large than 65536 because the pipe is full and can't write any more
The text was updated successfully, but these errors were encountered: