Question about zombies, start commands and shell configuration options with docker
Hey together,
We recently switched from the old runner to gitlab-ci-multi-runner :) Now I have a bit of trouble with zombie processes that are ultimately killing the whole Server, I will try to describe this a bit.
We have a worker that is running a base image of ubuntu and is prepared to run node js, it is going to run tests for ember.js, thus this box also runs Xvfb. Now it happened already multiple times that the phantom.js just never ended. The reason it has already ended, but ended up with being a zombie forever. This wouldn't be such a problem if this zombie would be killable. The parent process of this zombie is also not killable at all and nothing helps. You can't even reboot the machine properly, you need to use the magic keys to actually reboot it or force shutdown it. And if this is not enough the new zombie is constantly using a whole core forever.
With this problem at hand I did a bit of research and found some information, that the base image might be the problem. See the following issue: https://github.com/docker/docker/issues/18500
Now I looked a bit around if someone has handled this problem already and found this: https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/
I plan to use this baseimage now instead and here my final question:
How does gitlab-ci-multi-runner start the docker container. Is it submitting a bash -c?
Can this be changed with the shell option or this is only for ssh modes?
Would there be any possiblity to change, if it is bash -c, this via options to my_init?
Thank you!