Steve Hay wrote:
>>>The Bad News: The vhost test that originally didn't work way back at
>>>the start of this thread (excuse the pun) still doesn't work.
>>>
>>>
>>>
>>>
>>can't you pin-point which part of
>>that patch causes the problem? I assume the problem is the same, right?
>>
>>
>>
>It is indeed the usual problem. I'll try produce another shortened
>.conf file which reproduces the bug that's still lurking. Oh joy.
>
OK, here's another short conf file which does now break again:
=====
LoadModule perl_module C:\Temp\modperl-2.0\src\modules\perl\mod_perl.so
ServerName localhost:8529
Listen 8529
ServerRoot C:/Temp/modperl-2.0/t
DocumentRoot C:/Temp/modperl-2.0/t/htdocs
LogLevel debug
Listen 8530
<VirtualHost _default_:8530>
PerlOptions +Parent
PerlSwitches -IC:/Temp/modperl-2.0/Apache-Test/lib
PerlSwitches -IC:/Temp/modperl-2.0/blib/lib
PerlSwitches -IC:/Temp/modperl-2.0/blib/arch
PerlSwitches -IC:/Temp/modperl-2.0/t/response
PerlModule Apache::ServerUtil
<Perl>
my $s = Apache->server;
$s->add_config(['PerlModule TestVhost::basic']);
</Perl>
</VirtualHost>
=====
The add_config() call there is taken from the t/htdocs/vhost/startup.pl,
part of the vhost test patch that still breaks. Note that the above
conf breaks (in the usual way) with seemingly *any* module in place of
TestVhost::basic -- I tried Apache, File::Spec, CGI, DBI and a few
others and they all broke.
I'm testing with the latest CVS, plus the first of Stas' recent patches
(the one here:
http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=107465681330157&w=2).
With the above conf file, the following "-t" command-line fails with the
good ol' "free to wrong pool" error:
C:\apache2\bin\Apache.exe -t -d C:/Temp/modperl-2.0/t -f
C:/Temp/modperl-2.0/t/conf/httpd.conf.short3 -DAPACHE2 -DPERL_USEITHREADS
It can be "fixed" by just commenting-out the add_config() call in the
<Perl> section. (Indeed, without that add_config() call the server can
be started up for real without the "-t" option.)
Here's a stacktrace of the failure:
=====
VMem::Free(void * 0x00a3a01c) line 208 + 3 bytes
CPerlHost::Free(void * 0x00a3a01c) line 59 + 34 bytes
PerlMemFree(IPerlMem * 0x00262434, void * 0x00a3a01c) line 302
Perl_safesysfree(void * 0x00a3a01c) line 140 + 26 bytes
Perl_sv_clear(interpreter * 0x002643fc, sv * 0x002653fc) line 5203 + 13
bytes
Perl_sv_free(interpreter * 0x002643fc, sv * 0x002653fc) line 5348 + 13 bytes
Perl_free_tmps(interpreter * 0x002643fc) line 189 + 13 bytes
perl_destruct(interpreter * 0x002643fc) line 456 + 23 bytes
modperl_perl_destruct(interpreter * 0x002643fc) line 155 + 9 bytes
modperl_interp_destroy(modperl_interp_t * 0x009272d0) line 143 + 12 bytes
modperl_interp_pool_destroy(void * 0x008515f8) line 199 + 12 bytes
run_cleanups(cleanup_t * * 0x00852608) line 1994 + 13 bytes
apr_pool_destroy(apr_pool_t * 0x008525f8) line 763 + 12 bytes
apr_pool_destroy(apr_pool_t * 0x0028aa98) line 760 + 12 bytes
apr_pool_destroy(apr_pool_t * 0x00288a60) line 760 + 12 bytes
destroy_and_exit_process(process_rec * 0x00288af0, int 0) line 252
main(int 8, const char * const * 0x00282918) line 587 + 11 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 77e814c7()
=====
Here's the trace output with MOD_PERL_TRACE set to "cdghimos":
=====
C:\Temp\modperl-2.0>C:\apache2\bin\Apache.exe -t -d
C:/Temp/modperl-2.0/t -f C:/
Temp/modperl-2.0/t/conf/httpd.conf.short3 -DAPACHE2 -DPERL_USEITHREADS
mod_perl trace flags dump:
a Off (Apache API interaction)
c On (configuration for directive handlers)
d On (directive processing)
e Off (environment variables)
f Off (filters)
g On (Perl runtime interaction)
h On (handlers)
i On (interpreter pool management)
m On (memory allocations)
o On (I/O)
s On (perl sections)
t Off (benchmark-ish timings)
mod_perl.c:455: mod_perl globals are configured
modperl_global.c:88: init pconf
modperl_global.c:88: init threaded_mpm
modperl_global.c:88: init server_rec
modperl_config.c:187: p=0x28ab20, s=0x82c4d8, virtual=0
modperl_options.c:45: opts: 16
modperl_config.c:137: new dcfg: 0x84fd68
modperl_options.c:45: opts: 16
modperl_config.c:137: new dcfg: 0x850cb0
modperl_options.c:45: opts: 33554432
modperl_config.c:121: new scfg: 0x850f70
modperl_config.c:187: p=0x28ab20, s=0x850938, virtual=1
modperl_cmd.c:257: arg = +Parent
modperl_options.c:54: option 'Parent', type: server
modperl_options.c:55: opts_add 0
modperl_options.c:56: opts_remove 0
modperl_options.c:57: opts_override 0
modperl_options.c:58: opts_seen 0
modperl_options.c:59: unset 33554432
modperl_cmd.c:100: arg = -IC:/Temp/modperl-2.0/Apache-Test/lib
modperl_cmd.c:100: arg = -IC:/Temp/modperl-2.0/blib/lib
modperl_cmd.c:100: arg = -IC:/Temp/modperl-2.0/blib/arch
modperl_cmd.c:100: arg = -IC:/Temp/modperl-2.0/t/response
modperl_cmd.c:127: push PerlModule Apache::ServerUtil
MpSrv flags dump (localhost):
Access On
Authen On
Authz On
Autoload Off
ChildExit On
ChildInit On
Cleanup On
Clone Off
Enable On
Fixup On
HeaderParser On
InputFilter On
Log On
MapToStorage On
MergeHandlers Off
OpenLogs On
OutputFilter On
Parent Off
PostConfig On
PostReadRequest On
PreConnection On
ProcessConnection On
Response On
Trans On
Type On
Unset On
mod_perl.c:168: starting the parent perl for the base server
modperl_config_srv_argv_init =>
0 = Apache.exe
1 = -e;0
modperl_interp.c:247: server=localhost:8529
modperl_interp.c:117: 0x925ce8
mod_perl.c:237: constructed interpreter=0x26441c
mod_perl.c:288: Init vhost (null):8530: s=0x850938, base_s=0x82c4d8
MpSrv flags dump ((null)):
Access On
Authen On
Authz On
Autoload Off
ChildExit On
ChildInit On
Cleanup On
Clone Off
Enable On
Fixup On
HeaderParser On
InputFilter On
Log On
MapToStorage On
MergeHandlers Off
OpenLogs On
OutputFilter On
Parent On
PostConfig On
PostReadRequest On
PreConnection On
ProcessConnection On
Response On
Trans On
Type On
Unset On
mod_perl.c:172: starting the parent perl for vhost (null):8530
modperl_config_srv_argv_init =>
0 = Apache.exe
1 = -IC:/Temp/modperl-2.0/Apache-Test/lib
2 = -IC:/Temp/modperl-2.0/blib/lib
3 = -IC:/Temp/modperl-2.0/blib/arch
4 = -IC:/Temp/modperl-2.0/t/response
5 = -e;0
modperl_interp.c:247: server=(null):8530
modperl_interp.c:117: 0x9b68f8
mod_perl.c:237: constructed interpreter=0x9a4154
modperl_config.c:341: loaded Perl module Apache::ServerUtil for server
(null):85
30
mod_perl.c:327: created parent interpreter for VirtualHost (null):8530
mod_perl.c:288: Init vhost (null):8530: s=0x850938, base_s=0x82c4d8
mod_perl.c:308: server (null):8530 already initialized
modperl_handler.c:23: [940/1936] new handler Apache::PerlSections
mod_perl.c:288: Init vhost localhost:8529: s=0x82c4d8, base_s=0x82c4d8
mod_perl.c:292: base server is not vhost, skipping localhost:8529
modperl_cmd.c:120: load PerlModule TestVhost::basic
modperl_util.c:160: sv_setref_pv(Apache::CmdParms, 0x6fec8)
modperl_handler.c:75: dup handler Apache::PerlSections
modperl_handler.c:23: [940/1936] new handler Apache::PerlSections
MpHandler flags dump (Apache::PerlSections):
Anon Off
Autoload Off
Dynamic Off
Fake Off
Method Off
Object Off
Parsed Off
modperl_handler.c:52: [940/1936 (null):8530] handler
Apache::PerlSections was no
t compiled at startup, attempting to resolve using current pool 0x28ab20
modperl_mgv.c:297: package Apache::PerlSections not in %INC, attempting
to load
'Apache/PerlSections.pm'
modperl_mgv.c:302: loaded Apache::PerlSections package
modperl_mgv.c:341: [940/1936] found `handler' in class
`Apache::PerlSections' as
a method
modperl_options.c:45: opts: 33554432
modperl_config.c:121: new scfg: 0x851ca0
modperl_config.c:220: basev==0x84f8a8, addv==0x850f70
modperl_options.c:45: opts: 16
mod_perl.c:288: Init vhost (null):8530: s=0x850938, base_s=0x82c4d8
mod_perl.c:308: server (null):8530 already initialized
modperl_options.c:45: opts: 16
modperl_config.c:137: new dcfg: 0x8524d0
modperl_config.c:63: basev==0x84fd68, addv==0x850cb0
modperl_options.c:45: opts: 16
Syntax OK
modperl_interp.c:196: parent == 0x9b68f8
modperl_interp.c:134: interp == 0x9b68f8, perl == 0x9a4154,
PERL_GET_CONTEXT ==
0x9a4154
modperl_util.c:352: Apache::ServerUtil dl handle == 0x3a0000
modperl_util.c:352: Apache::CmdParms dl handle == 0x3c0000
modperl_util.c:352: Apache::Directive dl handle == 0x3d0000
modperl_util.c:352: APR::Table dl handle == 0x3e0000
modperl_util.c:352: Apache::Server dl handle == 0x3f0000
modperl_util.c:352: Apache::Const dl handle == 0xc20000
modperl_perl.c:151: perl == 0x9a4154, PERL_GET_CONTEXT == 0x9a4154
modperl_perl.c:169: after: PERL_GET_CONTEXT== 0x9a4154
modperl_util.c:376: close 0x3a0000
modperl_util.c:376: close 0x3c0000
modperl_util.c:376: close 0x3d0000
modperl_util.c:376: close 0x3e0000
modperl_util.c:376: close 0x3f0000
modperl_util.c:376: close 0xc20000
modperl_interp.c:196: parent == 0x925ce8
modperl_interp.c:134: interp == 0x925ce8, perl == 0x26441c,
PERL_GET_CONTEXT ==
0x26441c
modperl_perl.c:151: perl == 0x26441c, PERL_GET_CONTEXT == 0x26441c
Free to wrong pool 262770 not 953be8.
=====
- Steve
------------------------------------------------
Radan Computational Ltd.
The information contained in this message and any files transmitted with it are
confidential and intended for the addressee(s) only. If you have received this
message in error or there are any problems, please notify the sender immediately. The
unauthorized use, disclosure, copying or alteration of this message is strictly
forbidden. Note that any views or opinions presented in this email are solely those
of the author and do not necessarily represent those of Radan Computational Ltd. The
recipient(s) of this message should check it and any attached files for viruses: Radan
Computational will accept no liability for any damage caused by any virus transmitted
by this email.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]