On Tue, Mar 12, 2024 at 3:30 PM Eric Covener <cove...@gmail.com> wrote: > > On Tue, Mar 12, 2024 at 10:19 AM Yann Ylavic <ylavic....@gmail.com> wrote: > > > > On Tue, Mar 12, 2024 at 3:03 PM Eric Covener <cove...@gmail.com> wrote: > > > > > > On Tue, Mar 12, 2024 at 8:48 AM Yann Ylavic <ylavic....@gmail.com> 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..