reconfiguration can cause coredump when master_process off
Igor Sysoev
igor at sysoev.ru
Mon Jul 12 18:26:22 MSD 2010
On Mon, Jul 12, 2010 at 10:20:07PM +0800, Hungpo DU wrote:
> I am a new pie to everything here, so please just ignore anything what i've
> done improperly.
>
> Serveral days ago, when I was debugging my module, I crash the nginx process
> by change. I am playing with source code 0.8.36. then I tried the same thing
> under 0.8.44, crash happened again.
>
> nginx.conf:
>
> daemon off;
> master_process off;
>
> I started nginx in my terminal, and issued the configuration reloading
> command twice in another terminal. About 30 seconds later, the process just
> end up with "Segmentation fault".
>
> I digged the code, found what caused this problem was:
>
> in ngx_clean_old_cycles, the ngx_cycle_t::connections in the second old
> cycle in ngx_old_cycles was not initialized properly, which should be done
> in ngx_event_process_init, which was only called once in
> ngx_single_process_cycle. So, the following __cycle__s created after
> reconfiguring was not initialized by ngx_event_process_init.
>
> I don't know if I describe the "problem" right, or this behavior should be
> considered as a BUG.
"master_process off" mode is intended only for development and reloading
may not work reliably in this mode. If you to test reloading, you should
run "master_process on".
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx-devel
mailing list