> From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED]]
> My location_walk optimization (which suffers a potential bug, per
> our svn friends) takes an entirely different tact, which renders
> that whole idea DOA.
Ok, to rule out the possibility it is in the optimization code
I reverted to request.c 1.47. The bug remains:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 21805)]
0x806dd1d in ssl_config_perdir_merge (p=0x814e20c, basev=0x0,
addv=0x8192e2c) at ssl_engine_config.c:269
269 cfgMergeArray(aRequirement);
(gdb) bt
#0 0x806dd1d in ssl_config_perdir_merge (p=0x814e20c, basev=0x0,
addv=0x8192e2c) at ssl_engine_config.c:269
#1 0x80a2c15 in ap_merge_per_dir_configs (p=0x814e20c, base=0x8192f14,
new_conf=0x8192c34) at config.c:262
#2 0x80b7284 in ap_location_walk (r=0x814e23c) at request.c:1169
#3 0x80b6511 in ap_process_request_internal (r=0x814e23c) at request.c:154
#4 0x8080ba0 in ap_process_request (r=0x814e23c) at http_request.c:284
#5 0x807c4fa in ap_process_http_connection (c=0x814c2fc) at http_core.c:287
#6 0x80ac6db in ap_run_process_connection (c=0x814c2fc) at connection.c:82
#7 0x80ac8b0 in ap_process_connection (c=0x814c2fc) at connection.c:219
#8 0x80a13b2 in child_main (child_num_arg=1) at prefork.c:829
#9 0x80a150a in make_child (s=0x80e831c, slot=1) at prefork.c:916
#10 0x80a174f in perform_idle_server_maintenance (p=0x80e6cc4) at
prefork.c:1057
#11 0x80a1b2f in ap_mpm_run (_pconf=0x80e6cc4, plog=0x811ee84, s=0x80e831c)
at prefork.c:1235
#12 0x80a7323 in main (argc=1, argv=0xbffffd9c) at main.c:431
#13 0x401f026a in __libc_start_main (main=0x80a6d98 <main>, argc=1,
ubp_av=0xbffffd9c, init=0x8062460 <_init>, fini=0x80be7c4 <_fini>,
rtld_fini=0x4000daa4 <_dl_fini>, stack_end=0xbffffd8c) at
../sysdeps/generic/libc-start.c:129
Somewhere between ap_merge_per_dir_configs and ssl_config_perdir_merge
base is reset to NULL. Will investigate further.
For completeness, the relevant part of my config:
<VirtualHost _default_:443>
SSLEngine on
SSLCACertificatePath /var/openssl/ca/private
SSLCACertificateFile /var/openssl/ca/private/cacert.pem
SSLCertificateFile /var/openssl/ca/certs/striker.xs4all.nl-cert.pem
SSLCertificateKeyFile /var/openssl/ca/certs/striker.xs4all.nl-key.pem
DocumentRoot /opt/httpd/htdocs
ServerName striker.xs4all.nl
<Location /svn>
SSLRequireSSL
# SSLVerifyClient require
# SSLVerifyDepth 1
DAV svn
SVNPath /home/svn
</Location>
</VirtualHost>
<Location /svn>
DAV svn
SVNPath /home/svn
</Location>
[trying again]
Ah, the first loop through ap_merge_per_dir_configs seems to
be ok.
Second time through ap_merge_per_dir_configs:
Breakpoint 4, ap_merge_per_dir_configs (p=0x814e20c, base=0x8192f14,
new_conf=0x8192c34) at config.c:262
262 conf_vector[i] = (*df) (p, base_vector[i],
new_vector[i]);
(gdb) p *modp
$6 = {version = 20010825, minor_version = 0, module_index = 7, name =
0x80c0caf "mod_ssl.c", dynamic_load_handle = 0x0, next = 0x80da140,
magic = 1095774768, rewrite_args = 0, create_dir_config = 0x806dc6c
<ssl_config_perdir_create>, merge_dir_config = 0x806dce0
<ssl_config_perdir_merge>,
create_server_config = 0x806d9c4 <ssl_config_server_create>,
merge_server_config = 0x806dab4 <ssl_config_server_merge>, cmds = 0x80da180,
register_hooks = 0x806d760 <ssl_register_hooks>}
(gdb) s
0x806dce3 in ssl_config_perdir_merge (p=0x814e20c, basev=0x0,
addv=0x8192e2c) at ssl_engine_config.c:263
263 {
Now, why is base_vector[i] == NULL now?
It isn't wrowes caching code, because that is not in here (request.c 1.47).
Thoughts anyone?
Sander