On Sunday, 25 December 2011 19:50:27 Fred Moyer wrote:
> http://people.apache.org/~phred/Apache-Test-1.37-rc1.tar.gz

Don't know if it is just my system or if it is relevant at all but I can 
produce failures and even segfault by

make
t/TEST -start-httpd
while t/TEST -order=random -run-tests; do :; done

Can anyone else please try this? Also, I wouldn't see it as a show stopper if 
1.36 behaves the same.

Note, the first run of the test suite always succeeds.

The stack trace shows that PerlIOApache_flush passes a NULL pointer to 
ap_get_module_config. I think the relevant line is

  rcfg = modperl_config_req_get(st->r);

which expands to 

  ap_get_module_config(st->r->request_config, &perl_module)

I also got one of this:

[Wed Jan 04 19:19:29 2012] [error] [client 127.0.0.1] PerlIOApache_flush: 
flush can't be called before the response phase at 
/opt/perl/lib/5.12.3/Test/Builder.pm line 1825.\n

1818 sub _open_testhandles {
1819     my $self = shift;
1820 
1821     return if $self->{Opened_Testhandles};
1822 
1823     # We dup STDOUT and STDERR so people can change them in their
1824     # test suites while still getting normal test output.
1825     open( $Testout, ">&STDOUT" ) or die "Can't dup STDOUT:  $!";
1826     open( $Testerr, ">&STDERR" ) or die "Can't dup STDERR:  $!";
1827 
1828     #    $self->_copy_io_layers( \*STDOUT, $Testout );
1829     #    $self->_copy_io_layers( \*STDERR, $Testerr );
1830 
1831     $self->{Opened_Testhandles} = 1;
1832 
1833     return;
1834 }

To me the stack trace looks like a file handle being closed in the process of 
reopening it - something like what is done in line 1825 if $Testout is still 
open.


#0  0x000000000042cfb4 in ap_get_module_config (cv=0x0, m=0x7fa62e910de0) at 
util_debug.c:106
106         return ((void **)cv)[m->module_index];
(gdb) bt
#0  0x000000000042cfb4 in ap_get_module_config (cv=0x0, m=0x7fa62e910de0) at 
util_debug.c:106
#1  0x00007fa62e6f6386 in PerlIOApache_flush () from /opt/apache-
prefork/libexec/mod_perl.so
#2  0x00007fa62e48f6be in Perl_PerlIO_flush () from 
/opt/perl/lib/5.12.3/x86_64-linux/CORE/libperl.so
#3  0x00007fa62e491559 in PerlIOBase_close () from 
/opt/perl/lib/5.12.3/x86_64-linux/CORE/libperl.so
#4  0x00007fa62e6f6209 in PerlIOApache_close () from /opt/apache-
prefork/libexec/mod_perl.so
#5  0x00007fa62e491678 in PerlIO__close () from /opt/perl/lib/5.12.3/x86_64-
linux/CORE/libperl.so
#6  0x00007fa62e4916be in Perl_PerlIO_close () from 
/opt/perl/lib/5.12.3/x86_64-linux/CORE/libperl.so
#7  0x00007fa62e471624 in Perl_do_openn () from /opt/perl/lib/5.12.3/x86_64-
linux/CORE/libperl.so
#8  0x00007fa62e45e296 in Perl_pp_open () from /opt/perl/lib/5.12.3/x86_64-
linux/CORE/libperl.so
#9  0x00007fa62e41dc80 in Perl_runops_standard () from 
/opt/perl/lib/5.12.3/x86_64-linux/CORE/libperl.so
#10 0x00007fa62e3ca1ab in Perl_call_sv () from /opt/perl/lib/5.12.3/x86_64-
linux/CORE/libperl.so
#11 0x00007fa62e6f1cf7 in modperl_callback () from /opt/apache-
prefork/libexec/mod_perl.so
#12 0x00007fa62e6f2540 in modperl_callback_run_handlers () from /opt/apache-
prefork/libexec/mod_perl.so
#13 0x00007fa62e6f288f in modperl_callback_per_dir () from /opt/apache-
prefork/libexec/mod_perl.so
#14 0x00007fa62e6eea5b in modperl_response_handler_run () from /opt/apache-
prefork/libexec/mod_perl.so
#15 0x00007fa62e6eebb3 in modperl_response_handler_cgi () from /opt/apache-
prefork/libexec/mod_perl.so
#16 0x000000000043cc98 in ap_run_handler (r=0x9f53c0) at config.c:158
#17 0x000000000043d0fe in ap_invoke_handler (r=0x9f53c0) at config.c:376
#18 0x000000000044a150 in ap_process_request (r=0x9f53c0) at 
http_request.c:282
#19 0x0000000000447128 in ap_process_http_connection (c=0x9e7540) at 
http_core.c:190
#20 0x0000000000443298 in ap_run_process_connection (c=0x9e7540) at 
connection.c:43
#21 0x000000000044ee02 in child_main (child_num_arg=<optimized out>) at 
prefork.c:667
#22 0x000000000044f50c in make_child (slot=1, s=0x684848) at prefork.c:768
#23 make_child (s=0x684848, slot=1) at prefork.c:696
#24 0x0000000000450062 in perform_idle_server_maintenance (p=<optimized out>) 
at prefork.c:903
#25 ap_mpm_run (_pconf=<optimized out>, plog=<optimized out>, s=<optimized 
out>) at prefork.c:1107
#26 0x00000000004286d4 in main (argc=7, argv=0x7fffceabde38) at main.c:751


Torsten Förtsch

-- 
Need professional modperl support? Hire me! (http://foertsch.name)

Like fantasy? http://kabatinte.net

Reply via email to