Steve Hay wrote:
[...]
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.)

Thanks Steve, how about this config. I bet it breaks just the same.


....
<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>
    use Apache::ServerUtil;
    use Apache::Log;
    my $s = Apache->server;
    $s->log_error('Trulala');
  </Perl>
</VirtualHost>

And what about this:

 ....
<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>
    use Apache::Log;
    Apache::warn("Oh la la");
  </Perl>
</VirtualHost>

Here's a stacktrace of the failure:

Thanks


BTW, if you've read my request to p5p, I don't think the perl_destruct traces (on the infamous error) are of any good use. Since they just tell that there is a problem, but they don't say where. winFU-perl needs to spot the problem when it's created and not when the perl exits. So as you could see from my last patch, restoring the context fixes some things. So ideally i want winFU-perl pin-point that place in the code where the context was wrong.


__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to