Philippe M. Chiasson wrote:
Stas Bekman wrote:
Steve Hay wrote:
Next I want you to try cutting off things from startup files and httpd.conf, to find whether it's some unrelated module that is loaded that causes the problem. I suspect that because the sister test t/perl/ithreads2.t doesn't fail, and it runs exactly the same code, but inside a dedicated interpreter pool, which doesn't load any other modules.
Will try (again), but I've tried this before and got nowhere with it :(
While trawling through the httpd.conf file I found a couple of what look like errors: Two places say "PERL_ITHREADS" instead of "PERL_USEITHREADS". Correcting these apparent mistakes fixes the broken test sequence previously reported!
[...]
After making this change I found that reload.t now fails test 2. This patch (against current CVS, since I can't get SVN working) fixes that:
Index: t/modules/reload.t =================================================================== RCS file: /home/cvspublic/modperl-2.0/t/modules/reload.t,v retrieving revision 1.4 diff -u -u -r1.4 reload.t --- t/modules/reload.t 11 Sep 2004 01:02:28 -0000 1.4 +++ t/modules/reload.t 26 Nov 2004 18:05:21 -0000 @@ -53,7 +53,7 @@ touch_mtime($test_file);
{
- my $expected = join '', map { "$_:" . uc($_) . "\n" } sort @tests;
+ my $expected = join '', map { "$_:$_\n" } sort @tests;
my $received = get_body($same_interp, \&GET, $location);
$skip++ unless defined $received;
skip_not_same_interp(
That's not a correct fix to the problem. reload.t is apparently now failing for
you, and this patch just ignores the failure.
OK, current state of play is this:
With fresh svn check-out, all tests pass OK if I skip t/perl/ithreads, but with t/perl/ithreads the server crashes on that test.
As before, this sequence reliably fails:
perl t/TEST -verbose t/modules/reload.t t/perl/api.t t/perl/ithreads.t
It still fails with the attached much-shortened conf file. Note that I've commented-out a top-level PerlInterpScope directive, in line with recent changes. If I re-instate that directive then t/perl/ithreads no longer crashes, but t/modules/reload fails as described above.
Are we sure that the PerlInterpScope directive should not be at the top-level? If so, then reload.t is OK and we still have ithreads.t to fix.
I think PerlInterpScope just helps to hide the problem. It probably moves the interpreter back to the pool and a new interpreter is serving other requests.
I'm just going to make that test skip for now (it is not in the distro anyway) and later on we need to start working on writing a bunch of new tests exercising the scoping directives and nail this and other interpreter context switch problems.
-- __________________________________________________________________ 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]
