> 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

Reply via email to