[PATCH] Cache: gracefully exit the cache manager process
Maxim Dounin
mdounin at mdounin.ru
Mon Nov 4 21:31:31 UTC 2013
Hello!
On Mon, Nov 04, 2013 at 12:55:45PM -0800, Yichun Zhang (agentzh) wrote:
> Hello!
>
> I've recently run into an issue in the nginx cache manager process
> which does not call ngx_worker_process_exit to gracefully exit, thus
> tragically skipping all my cleanup code registered by my (3rd-party)
> modules.
>
> Below is a patch to fix this. This fix also makes the cache manager
> process valgrind-clean.
>
> Thanks!
> -agentzh
>
> # HG changeset patch
> # User Yichun Zhang <agentzh at gmail.com>
> # Date 1383598130 28800
> # Node ID f64218e1ac963337d84092536f588b8e0d99bbaa
> # Parent dea321e5c0216efccbb23e84bbce7cf3e28f130c
> Cache: gracefully exit the cache manager process.
>
> diff -r dea321e5c021 -r f64218e1ac96 src/os/unix/ngx_process_cycle.c
> --- a/src/os/unix/ngx_process_cycle.c Thu Oct 31 18:23:49 2013 +0400
> +++ b/src/os/unix/ngx_process_cycle.c Mon Nov 04 12:48:50 2013 -0800
> @@ -1335,7 +1335,7 @@
>
> if (ngx_terminate || ngx_quit) {
> ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting");
> - exit(0);
> + ngx_worker_process_exit(cycle);
> }
The cache manager process isn't worker process, so calling
ngx_worker_process_exit() looks strange.
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx-devel
mailing list