> Am 12.07.2021 um 11:07 schrieb Yann Ylavic <ylavic....@gmail.com>:
> 
> On Mon, Jul 12, 2021 at 10:13 AM Stefan Eissing
> <stefan.eiss...@greenbytes.de> wrote:
>> 
>> Is this the "worker->cp" being NULL?
> 
> Is there a discussion about this already Stefan?

I have not analyzed all possible paths to this. I just saw that there are 
several places where worker->cp seems to be lazy initialized.

> 
> It's indeed worker->cp == NULL, I can reproduce on 2.4.x + apr-trunk with:
> $ while t/TEST t/modules/proxy_balancer.t; do :; done
> ...
> (gdb) bt
> #0  0x00007f4eaa06716c in ap_proxy_acquire_connection
> (proxy_function=0x7f4eaa03e015 "http", conn=0x7f4e31ffaa90,
> worker=0x55ee904554a0, s=0x55ee90649260) at proxy_util.c:2417
> #1  0x00007f4eaa03d28d in proxy_http_handler (r=0x7f4e14002c10,
> worker=0x55ee904554a0, conf=0x55ee90421aa0, url=0x7f4e14007538
> "http://localhost:8529/";, proxyname=0x0, proxyport=0) at
> mod_proxy_http.c:1878
> #2  0x00007f4eaa0606fc in proxy_run_scheme_handler (r=0x7f4e14002c10,
> worker=0x55ee904554a0, conf=0x55ee90421aa0, url=0x7f4e14007538
> "http://localhost:8529/";, proxyhost=0x0, proxyport=0) at
> mod_proxy.c:3183
> #3  0x00007f4eaa05a65b in proxy_handler (r=0x7f4e14002c10) at mod_proxy.c:1262
> #4  0x000055ee8f18a2e5 in ap_run_handler (r=0x7f4e14002c10) at config.c:169
> #5  0x000055ee8f18ae1f in ap_invoke_handler (r=0x7f4e14002c10) at config.c:443
> #6  0x000055ee8f1a8bea in ap_process_async_request (r=0x7f4e14002c10)
> at http_request.c:452
> #7  0x000055ee8f1a4bf8 in ap_process_http_async_connection
> (c=0x7f4e10000f98) at http_core.c:155
> #8  0x000055ee8f1a4df5 in ap_process_http_connection
> (c=0x7f4e10000f98) at http_core.c:246
> #9  0x000055ee8f19865a in ap_run_process_connection (c=0x7f4e10000f98)
> at connection.c:42
> #10 0x00007f4eaa6f5dde in process_socket (thd=0x7f4e84020eb8,
> p=0x7f4e10000c68, sock=0x7f4e10000cf0, cs=0x7f4e10000ef0,
> my_child_num=0, my_thread_num=22) at event.c:1038
> #11 0x00007f4eaa6f7f93 in worker_thread (thd=0x7f4e84020eb8,
> dummy=0x7f4e84031cf0) at event.c:2070
> #12 0x00007f4eaa770662 in dummy_worker (opaque=0x7f4e84020eb8) at
> threadproc/unix/thread.c:148
> #13 0x00007f4eaa6cdea7 in start_thread (arg=<optimized out>) at
> pthread_create.c:477
> #14 0x00007f4eaa5fddef in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> (gdb) l
> 2412                             proxy_function, worker->s->hostname_ex);
> 2413                return HTTP_SERVICE_UNAVAILABLE;
> 2414            }
> 2415        }
> 2416
> 2417        if (worker->s->hmax && worker->cp->res) {
> 2418            rv = apr_reslist_acquire(worker->cp->res, (void **)conn);
> 2419        }
> 2420        else {
> 2421            /* create the new connection if the previous was destroyed */
> (gdb) p *worker
> $5 = {hash = {def = 917659709, fnv = 2489242135}, local_status =
> 1970041715, cp = 0x0, s = 0x7f4ea99dd020, balancer = 0x55ee90422128,
> tmutex = 0x0, context = 0x0, section_config = 0x55ee90455490}

Reply via email to