On Mon, Jul 12, 2021 at 10:13 AM Stefan Eissing
<[email protected]> wrote:
>
> Is this the "worker->cp" being NULL?

Is there a discussion about this already Stefan?

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