Main conf created twice, only closed once?

Hi,
I have a problem with a module I’m writing. I need to do something in
the
main config after variables are read from the conf file, so I have put
this
in the post_conf function. Then I need do something when to it when the
process is closed via
./nginx -s reload
this is in the exit_process function. What I would expect is that for
each
reload there is one new main conf, this is not the case ( see output
below
). Two new main configs are created, then only one of them is ‘seen’ by
the
exit_process.

create main conf mainconf=0x9908e8
post conf mainconf=0x9908e8
— reload happens
create main conf mainconf=0xe508e8
post conf mainconf=0xe508e8
create main conf mainconf=0x993ef8
post conf mainconf=0x993ef8
exit mainconf=0x9908e8

So on reload, two new main configs are created, and the previous one is
closed. This wouldn’t be a problem, but every subsequent reload the same
thing happens ( two are created, but only one of the previous two
exited).

Anyone have any idea why this might happen?

Thanks.

Posted at Nginx Forum:

Hello!

On Mon, Mar 14, 2016 at 07:01:42AM -0400, ben5192 wrote:

closed. This wouldn’t be a problem, but every subsequent reload the same
thing happens ( two are created, but only one of the previous two exited).

Anyone have any idea why this might happen?

Are you using nginx on Windows? On Windows both master and worker
processes read the configuration, as there is no fork().

Note well that the exit_process callback is called on worker
process exit, but not on exit of other processes. It’s not
expected to be balanced with configuration creation.


Maxim D.
http://nginx.org/