You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Doug MacEachern <do...@covalent.net> on 2001/12/05 05:52:03 UTC

Re: current 'make test' status

On Thu, 2 Aug 2001, Stas Bekman wrote:

> Ok, so with the latest workaround the normal run of 'make test' succeeds
> on my machine. But, if I stress-test, I see segfaults:
> 
> % ./t/TEST -order=random -times=5

i had looked at this a few times before and nothing clicked.  then i hit
again today writing the lookup_uri2 test.  the problem was triggered by
Apache::Test::init_test_pm() which would tie STDOUT only if it wasn't tied
already.  but then never untie it.  so the next time around an old
request_rec was being used, which had already been destroyed.  this is
fixed now and the stress test above passes.
fun to watch it happen, the -order -times stuff is way cool stas!



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Doug MacEachern <do...@covalent.net>.
On Thu, 6 Dec 2001, Stas Bekman wrote:
 
> this patch puts things into the desired order:

i don't see a patch, but +1



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Stas Bekman <st...@stason.org>.
On Thu, 6 Dec 2001, Stas Bekman wrote:

> Doug MacEachern wrote:
>
> > On Wed, 5 Dec 2001, Stas Bekman wrote:
> >
> >
> >>can we make the t/TEST use Apache-Test/lib rather than blib? I've run
> >>'cvs up' but forgot to run 'make' to copy the updates to blib :(
> >>
> >
> > i thought it already did:
> > t/TEST on the client does:
> > use lib map { "$_/Apache-Test/lib" } qw(. ..);
> >
> > and t/conf/modperl_inc.pl on the server side does:
> > use lib '/home/dougm/ap/modperl-2.0/Apache-Test/lib';
> > use lib '/home/dougm/ap/modperl-2.0/lib';
> > use lib '/home/dougm/ap/modperl-2.0/blib/lib';
> > use lib '/home/dougm/ap/modperl-2.0/blib/arch';
> > ...
>
>
> right, that's the client side. Look at @INC printed just before the
> server is started in TestServer:
>
> /home/stas/apache.org/mp-file/lib
> /home/stas/apache.org/mp-file/blib/lib
> /home/stas/apache.org/mp-file/blib/arch
> ./Apache-Test/lib
> ../Apache-Test/lib
> /home/stas/perl/ithread/lib/5.7.2/i686-linux-thread-multi
> /home/stas/perl/ithread/lib/5.7.2
> /home/stas/perl/ithread/lib/site_perl/5.7.2/i686-linux-thread-multi
> /home/stas/perl/ithread/lib/site_perl/5.7.2
> /home/stas/perl/ithread/lib/site_perl
> . at Apache-Test/lib/Apache/TestServer.pm line 389.
>
> which is not what we want.

this patch puts things into the desired order:

./Apache-Test/lib
../Apache-Test/lib
/home/stas/apache.org/mp-file/lib
/home/stas/apache.org/mp-file/blib/lib
/home/stas/apache.org/mp-file/blib/arch
/home/stas/perl/ithread/lib/5.7.2/i686-linux-thread-multi
/home/stas/perl/ithread/lib/5.7.2
/home/stas/perl/ithread/lib/site_perl/5.7.2/i686-linux-thread-multi
/home/stas/perl/ithread/lib/site_perl/5.7.2
/home/stas/perl/ithread/lib/site_perl
.

Index: Apache-Test/lib/Apache/TestConfig.pm
===================================================================
RCS file:
/home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v
retrieving revision 1.90
diff -u -r1.90 TestConfig.pm
--- Apache-Test/lib/Apache/TestConfig.pm        2001/12/04 03:56:35
1.90
+++ Apache-Test/lib/Apache/TestConfig.pm        2001/12/06 06:33:42
@@ -1109,9 +1109,14 @@
 sub add_inc {
     my $self = shift;
     require lib;
+    # make sure that the ./Apache::Test dev libs will be first, followed
+    # by modperl ./lib, followed by ./blib and finally core Perl libs.
+    my @libs = map { "$_/Apache-Test/lib" } qw(. ..);
+    lib::->unimport(@libs);
     lib::->import(map "$self->{vars}->{top_dir}/$_",
                   qw(lib blib/lib blib/arch));
-    #print join "\n", @INC, "";
+    lib::->import(@libs);
+    #print join "\n", "add_inc", @INC, "";
 }




_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Stas Bekman <st...@stason.org>.
Doug MacEachern wrote:

> On Wed, 5 Dec 2001, Stas Bekman wrote:
>  
> 
>>can we make the t/TEST use Apache-Test/lib rather than blib? I've run 
>>'cvs up' but forgot to run 'make' to copy the updates to blib :(
>>
> 
> i thought it already did:
> t/TEST on the client does:
> use lib map { "$_/Apache-Test/lib" } qw(. ..);
> 
> and t/conf/modperl_inc.pl on the server side does:
> use lib '/home/dougm/ap/modperl-2.0/Apache-Test/lib';
> use lib '/home/dougm/ap/modperl-2.0/lib';
> use lib '/home/dougm/ap/modperl-2.0/blib/lib';
> use lib '/home/dougm/ap/modperl-2.0/blib/arch';
> ...


right, that's the client side. Look at @INC printed just before the 
server is started in TestServer:

/home/stas/apache.org/mp-file/lib
/home/stas/apache.org/mp-file/blib/lib
/home/stas/apache.org/mp-file/blib/arch
./Apache-Test/lib
../Apache-Test/lib
/home/stas/perl/ithread/lib/5.7.2/i686-linux-thread-multi
/home/stas/perl/ithread/lib/5.7.2
/home/stas/perl/ithread/lib/site_perl/5.7.2/i686-linux-thread-multi
/home/stas/perl/ithread/lib/site_perl/5.7.2
/home/stas/perl/ithread/lib/site_perl
. at Apache-Test/lib/Apache/TestServer.pm line 389.

which is not what we want.

_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Doug MacEachern <do...@covalent.net>.
On Wed, 5 Dec 2001, Stas Bekman wrote:
 
> can we make the t/TEST use Apache-Test/lib rather than blib? I've run 
> 'cvs up' but forgot to run 'make' to copy the updates to blib :(

i thought it already did:
t/TEST on the client does:
use lib map { "$_/Apache-Test/lib" } qw(. ..);

and t/conf/modperl_inc.pl on the server side does:
use lib '/home/dougm/ap/modperl-2.0/Apache-Test/lib';
use lib '/home/dougm/ap/modperl-2.0/lib';
use lib '/home/dougm/ap/modperl-2.0/blib/lib';
use lib '/home/dougm/ap/modperl-2.0/blib/arch';
...


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Stas Bekman <st...@stason.org>.
Stas Bekman wrote:

> 
> 
>>>   t/TEST modperl/exit filter/input_msg modperl/exit
>>>
>>
>> not having troubles with either of these.  maybe the fix i just committed
>> covers these too?
> 
> I get a core dump with the latest cvs:

scratch it. it works! great!

can we make the t/TEST use Apache-Test/lib rather than blib? I've run 
'cvs up' but forgot to run 'make' to copy the updates to blib :(

-- 


_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Stas Bekman <st...@stason.org>.

>>   t/TEST modperl/exit filter/input_msg modperl/exit
>>
> 
> not having troubles with either of these.  maybe the fix i just committed
> covers these too?


I get a core dump with the latest cvs:


     child_cleanup=0x4001bb50 <brigade_cleanup>) at apr_pools.c:775
775 
         c->data = data;
(gdb) where
#0  apr_pool_cleanup_register (p=0x8184f64, data=0x8184f64,
     plain_cleanup=0x4001bb50 <brigade_cleanup>,
     child_cleanup=0x4001bb50 <brigade_cleanup>) at apr_pools.c:775
#1  0x4001bc53 in apr_brigade_create (p=0x8184f64) at apr_brigade.c:109
#2  0x40349972 in modperl_wbucket_pass (wb=0x87aad78,
     buf=0x87aad7c "1..1\nok 1\n", len=5) at modperl_filter.c:31
#3  0x40349a59 in modperl_wbucket_flush (wb=0x87aad78) at 
modperl_filter.c:45
#4  0x404ecbb8 in mpxs_Apache__RequestRec_print (my_perl=0x8562660, 
items=2,
     mark=0x85644f4, sp=0x85644f0)
     at 
/home/stas/apache.org/mp-file/xs/Apache/RequestIO/Apache__RequestIO.h:57
#5  0x404ef10c in XS_Apache__RequestRec_PRINT (my_perl=0x8562660, 
cv=0x8543aa4)
     at RequestIO.xs:193
#6  0x403f8ad0 in Perl_pp_entersub (my_perl=0x8562660) at pp_hot.c:2727
#7  0x403d75b9 in Perl_runops_debug (my_perl=0x8562660) at dump.c:1388
#8  0x4037cf20 in S_call_body (my_perl=0x8562660, myop=0xbfffd040, 
is_eval=0)
     at perl.c:1948
#9  0x4037c64e in Perl_call_sv (my_perl=0x8562660, sv=0x87b58e8, flags=64)
     at perl.c:1827
#10 0x4037c359 in Perl_call_method (my_perl=0x8562660,
     methname=0x4048f943 "PRINT", flags=0) at perl.c:1760
#11 0x403f0700 in Perl_pp_print (my_perl=0x8562660) at pp_hot.c:567
#12 0x403d75b9 in Perl_runops_debug (my_perl=0x8562660) at dump.c:1388
#13 0x4037cf20 in S_call_body (my_perl=0x8562660, myop=0xbfffd270, 
is_eval=0)
---Type <return> to continue, or q <return> to quit---
     at perl.c:1948
#14 0x4037caa2 in Perl_call_sv (my_perl=0x8562660, sv=0x87b410c, flags=4)
     at perl.c:1866
#15 0x40345938 in modperl_callback (my_perl=0x8562660, handler=0x816f224,
     p=0x87b739c, r=0x87b73cc, s=0x810442c, args=0x85efe0c)
     at modperl_callback.c:52
#16 0x40346073 in modperl_callback_run_handlers (idx=6, type=3, 
r=0x87b73cc,
     c=0x0, s=0x810442c, pconf=0x0, plog=0x0, ptemp=0x0)
     at modperl_callback.c:179
#17 0x4034614e in modperl_callback_per_dir (idx=6, r=0x87b73cc)
     at modperl_callback.c:203
#18 0x40340ebe in modperl_response_handler_run (r=0x87b73cc, finish=1)
     at mod_perl.c:515
#19 0x40340f5d in modperl_response_handler (r=0x87b73cc) at mod_perl.c:534
#20 0x080b4fa7 in ap_run_handler (r=0x87b73cc) at config.c:185
#21 0x080b5453 in ap_invoke_handler (r=0x87b73cc) at config.c:350
#22 0x0808ffe5 in ap_process_request (r=0x87b73cc) at http_request.c:292
#23 0x0808c847 in ap_process_http_connection (c=0x87a5e6c) at 
http_core.c:283
#24 0x080bd527 in ap_run_process_connection (c=0x87a5e6c) at connection.c:84
#25 0x080b3ddf in child_main (child_num_arg=0) at prefork.c:684
#26 0x080b3f23 in make_child (s=0x810442c, slot=0) at prefork.c:771
#27 0x080b3f84 in startup_children (number_to_start=1) at prefork.c:794
#28 0x080b4269 in ap_mpm_run (_pconf=0x80ffd4c, plog=0x8145f7c, s=0x810442c)
---Type <return> to continue, or q <return> to quit---
     at prefork.c:989
#29 0x080b8d62 in main (argc=7, argv=0xbffff674) at main.c:445
#30 0x402136a0 in __libc_start_main () from /lib/libc.so.6



_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Doug MacEachern <do...@covalent.net>.
On Wed, 5 Dec 2001, Stas Bekman wrote:
 
> nice, but apparently it's not the only problem. Run:

yup, just found another when i ran it again.
 
>    t/TEST -order=random -times=5
> 
> with sid 170482341 and there are loads of failures including a core dump.
... 
>    t/TEST modperl/exit filter/input_msg modperl/exit

not having troubles with either of these.  maybe the fix i just committed
covers these too?



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Doug MacEachern <do...@covalent.net>.
On Wed, 5 Dec 2001, Stas Bekman wrote:
 
> with sid 170482341 and there are loads of failures including a core dump.

actually i do see problems with this one, but it'll have to wait.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: current 'make test' status

Posted by Stas Bekman <st...@stason.org>.
Doug MacEachern wrote:

> On Thu, 2 Aug 2001, Stas Bekman wrote:
> 
> 
>>Ok, so with the latest workaround the normal run of 'make test' succeeds
>>on my machine. But, if I stress-test, I see segfaults:
>>
>>% ./t/TEST -order=random -times=5
>>
> 
> i had looked at this a few times before and nothing clicked.  then i hit
> again today writing the lookup_uri2 test.  the problem was triggered by
> Apache::Test::init_test_pm() which would tie STDOUT only if it wasn't tied
> already.  but then never untie it.  so the next time around an old
> request_rec was being used, which had already been destroyed.  this is
> fixed now and the stress test above passes.
> fun to watch it happen, the -order -times stuff is way cool stas!
> 
> 

nice, but apparently it's not the only problem. Run:

   t/TEST -order=random -times=5

with sid 170482341 and there are loads of failures including a core dump.

since -order=random is random, it's possible that the tests will pass 
one time but not another. Therefore I think to get a better chance of 
various order coverage, we need to run -times=100 and more.

This particular sequence that I've reported before still deterministicly 
fails with a core dump:

   t/TEST modperl/exit filter/input_msg modperl/exit

_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org