the process in container can not handle the signal properly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kolla |
Fix Released
|
High
|
Jeffrey Zhang |
Bug Description
When restarting containers, part of them can not handle the process properly. like when running `docker restart neutron_server`, you will get following warning:
Aug 18 08:26:07 aio dockerd[914]: time="2016-
Aug 18 08:26:08 aio dockerd[914]: time="2016-
it takes 10 seconds to stop the neutron_server with failed and send a 15 signal to the main process, which is bad.
The root cause is: The Linux kernel applies special signal handling to processes which run as PID 1. the solution is use the dumb-init as the init process in the container. more info please check: https:/
Changed in kolla: | |
assignee: | nobody → Jeffrey Zhang (jeffrey4l) |
description: | updated |
Changed in kolla: | |
status: | New → In Progress |
Changed in kolla: | |
milestone: | none → newton-3 |
importance: | Undecided → High |
Reviewed: https:/ /review. openstack. org/357015 /git.openstack. org/cgit/ openstack/ kolla/commit/ ?id=6710bbeb7c8 bdcec45b1fb01c7 8618f6c9482e80
Committed: https:/
Submitter: Jenkins
Branch: master
commit 6710bbeb7c8bdce c45b1fb01c78618 f6c9482e80 zhang@99cloud. net>
Author: Jeffrey Zhang <jeffrey.
Date: Thu Aug 18 16:42:02 2016 +0800
Use dumb-init to manage the pid 1 process
Normally, when you launch a Docker container, the process you're
executing becomes PID 1, giving it the quirks and responsibilities that
come with being the init system for the container.
There are two common issues this presents:
* In most cases, signals won't be handled properly.
* Orphaned zombie processes aren't properly reaped.
the dumb-init acting like a simple init system. It launches a single
process and then proxies all received signals to a session rooted at
that child process.
Closes-Bug: #1614509 dc7c6732b92ffd3 b6c9fe467ec
Change-Id: I9d3d04648e151d