Precondition: Ubuntu 16.04.2 with Docker 17.03 (kernel 4.4)
Steps to reproduce:
- Install latest Docker
- Run 300 containers with health check (for i in {1..300}; do docker run -d -it --restart=always --name poc_$i talves/health_poc; done)
- Send termination signal to the containers (docker kill -s TERM $(docker ps -q)
- A few processes are going to be stuck in "uninterruptible sleep" ("D" state). The only know way to recover from this is host reboot
Expected behavior:
- All containers should be terminated without any dangling process
Actual behavior:
- Some processes are left in "D" state. In our production environment this leads over time to performance degradation and maintenance issues due to containers that cannot be stopped / removed.
A fix is provided on kernel 4.12 - it would be nice if it could be backported and included in the next Ubuntu release within the supported kernel.
(please refer to https:/ /github. com/moby/ moby/issues/ 31007#issuecomm ent-308877825 for context)
Precondition: Ubuntu 16.04.2 with Docker 17.03 (kernel 4.4)
Steps to reproduce:
- Install latest Docker
- Run 300 containers with health check (for i in {1..300}; do docker run -d -it --restart=always --name poc_$i talves/health_poc; done)
- Send termination signal to the containers (docker kill -s TERM $(docker ps -q)
- A few processes are going to be stuck in "uninterruptible sleep" ("D" state). The only know way to recover from this is host reboot
Expected behavior:
- All containers should be terminated without any dangling process
Actual behavior:
- Some processes are left in "D" state. In our production environment this leads over time to performance degradation and maintenance issues due to containers that cannot be stopped / removed.
A fix is provided on kernel 4.12 - it would be nice if it could be backported and included in the next Ubuntu release within the supported kernel.
Thanks in advance