Ok, brute-forced it a bit. The test suite now always does
a stop/start cycle on config changes as reload now longer
works reliably. Takes a bit more time, but not overly so
on my machine.

Cheers,
Stefan

> Am 25.08.2021 um 16:22 schrieb ste...@eissing.org:
> 
> 
> 
>> Am 25.08.2021 um 16:16 schrieb Yann Ylavic <ylavic....@gmail.com>:
>> 
>> On Wed, Aug 25, 2021 at 4:04 PM Yann Ylavic <ylavic....@gmail.com> wrote:
>>> 
>>> On Wed, Aug 25, 2021 at 3:56 PM ste...@eissing.org <ste...@eissing.org> 
>>> wrote:
>>>> 
>>>> I could add that in the test config as header to a certain location.
>>>> 
>>>> However, will all new connections get to new gen children once the
>>>> new number has been spotted?
>>> 
>>> Yes, that's guaranteed by the MPM which increases the gen number just
>>> before creating new children (after having asked the old ones to
>>> stop), no old child will ever be created with a new generation number.
>>> ap_mpm_query(AP_MPMQ_GENERATION, &generation) within a child will
>>> always return the one that was forked.
>> 
>> Hmm, you asked for a different question actually, the new
>> *connections* done after the gen bump are not guaranteed to be handled
>> by a new gen child, because it may take some (short) time before the
>> old gen listeners stop listening.
>> There is no way to guarantee where connections will go in the first
>> times of a restart I'm afraid.
>> At least your test client can know whether it's handled by an old or
>> new gen and drop the connection in the former case..
> 
> Thanks for confirming what I suspected. Concurrency is a bitch.
> 
> Hmm, hate to add timed waits here, as who knows how Travis will
> work with those. Will experiment a bit.

Reply via email to