On Tue, Mar 12, 2024 at 3:30 PM Eric Covener <[email protected]> wrote:
>
> On Tue, Mar 12, 2024 at 10:19 AM Yann Ylavic <[email protected]> wrote:
> >
> > On Tue, Mar 12, 2024 at 3:03 PM Eric Covener <[email protected]> wrote:
> > >
> > > On Tue, Mar 12, 2024 at 8:48 AM Yann Ylavic <[email protected]> wrote:
> > > >
> > > > Maybe it could be:
> > > > if (threads_created) {
> > >
> > > not listener_started?
> > >
> > > threads_started>0 could just mean we had no scoreboard issues but
> > > pthread_create failed on anything but the first thread.
> >
> > Don't we want the workers to gracefully stop whenever at least one was
> > created, or we may deadlock in clean_child_exit()?
>
> Yes, I see what you mean now. I will try to force some pthread_create
> errors w/ the patch soon.
Possibly we want this bit too:
rv = ap_thread_create(&threads[i], thread_attr,
worker_thread, my_info, pruntime);
if (rv != APR_SUCCESS) {
+ ap_update_child_status_from_indexes(my_child_num, i,
+ SERVER_DEAD, NULL);
to restore SERVER_DEAD for the thread we could not create..