From 17384566bbd90d32270bf44cbed2155df1aee680 Mon Sep 17 00:00:00 2001 From: Yuansheng Date: Tue, 11 Sep 2018 15:47:43 +0800 Subject: [PATCH] bugfix: nginx did not destroy the cycle memory pool before the daemon process exits. This is to make the nginx ASAN or Valgrind clean in daemon mode. It is also meaningful when we have more sophisticated cleanup work needed in the configuration initialization phase and handlers like init_by_lua*. --- patches/nginx-1.13.6-daemon-destroy-pool.patch | 12 ++++++++++++ util/mirror-tarballs | 4 ++++ 2 files changed, 16 insertions(+) create mode 100644 patches/nginx-1.13.6-daemon-destroy-pool.patch diff --git a/patches/nginx-1.13.6-daemon-destroy-pool.patch b/patches/nginx-1.13.6-daemon-destroy-pool.patch new file mode 100644 index 0000000..5690b88 --- /dev/null +++ b/patches/nginx-1.13.6-daemon-destroy-pool.patch @@ -0,0 +1,12 @@ +diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c +index ab672110..f259af31 100644 +--- a/src/os/unix/ngx_daemon.c ++++ b/src/os/unix/ngx_daemon.c +@@ -23,6 +23,8 @@ ngx_daemon(ngx_log_t *log) + break; + + default: ++ /* just to make it ASAN or Valgrind clean */ ++ ngx_destroy_pool(ngx_cycle->pool); + exit(0); + } diff --git a/util/mirror-tarballs b/util/mirror-tarballs index ce36b85..c5a848f 100755 --- a/util/mirror-tarballs +++ b/util/mirror-tarballs @@ -65,6 +65,10 @@ if [ "$answer" = "Y" ]; then echo "$info_txt applying the resolver_conf_parsing patch for nginx" patch -p1 < $root/patches/nginx-$main_ver-resolver_conf_parsing.patch || exit 1 echo + + echo "$info_txt applying the daemon-destroy-pool patch for nginx" + patch -p1 < $root/patches/nginx-$main_ver-daemon-destroy-pool.patch || exit 1 + echo fi answer=`$root/util/ver-ge "$main_ver" 1.5.12`