Can comment really on the diff, but totally agree on the goal to minimize the 
unresponsive time and make graceful less disruptive.

So +1 for that.

> Am 28.06.2021 um 16:25 schrieb Yann Ylavic <[email protected]>:
> 
> When the MPM event/worker is restarting, it first signals the
> children's processes to stop (via POD), then reload the configuration,
> and finally start the new generation.
> 
> This may be problematic when the reload takes some time to complete
> because incoming connections are no longer processed.
> A module at day $job is loading quite some regexes and JSON schemas
> for each vhost, and I have seen restarts take tens of seconds to
> complete with a large number of vhosts. I suppose this can happen with
> many RewriteRules too.
> 
> How about we wait for the reload to complete before stopping the old
> generation, like in the attached patch (MPM event only for now,
> changes in worker would be quite similar)?
> 
> This is achieved by creating the PODs and listeners buckets from a
> generation pool (gen_pool), with a different lifetime than pconf.
> gen_pool survives restarts and is created/cleared after the old
> generation is stopped, entirely in the run_mpm hook, so the stop and
> PODs and buckets handling is moved there (most changes are cut/paste).
> 
> WDYT?
> 
> Regards;
> Yann.
> <late_children_stop.diff>

Reply via email to