pgaertig / nginx-big-upload

Resumable and reliable file uploads of any size. Nginx extension written in Lua.
https://github.com/pgaertig/nginx-big-upload
Other
192 stars 49 forks source link

Do not fork a process for a condition check #24

Open bostko opened 6 years ago

bostko commented 6 years ago

Fork process only when AUTORELOAD is true. Not needed to fork a process even when AUTORELOAD is false.

Problem which was observed. At the moment we have an image X built on top of nginx-big-upload. I started a container on a server with X. When rebuild my docker image and make X' and do

docker-compose pull
docker-compose up -d

Then a zombie process is observed:

ps auxf # on host
root     32146  0.0  0.0   4052   660 ?        Ss   11:16   0:00  |   |   \_ /usr/bin/dumb-init /bin/bash /opt/nginx-big-upload/docker/entrypoint.sh
root     32221  0.0  0.0  26872  6120 ?        Ss   11:16   0:00  |   |       \_ nginx: master process nginx -g daemon off;
root     32238  0.0  0.0      0     0 ?        Z    11:16   0:00  |   |           \_ [bash] <defunct>
vvvv    32239  0.0  0.0  26920  3584 ?        S    11:16   0:00  |   |           \_ nginx: worker process

echo "there is a zombie with pid 32238"