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*.
This commit is contained in:
Yuansheng 2018-09-11 15:47:43 +08:00 committed by Yichun Zhang (agentzh)
parent a5e7a17cdf
commit 17384566bb
2 changed files with 16 additions and 0 deletions

View File

@ -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);
}

View File

@ -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`