You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Kiki <ki...@abc.ro> on 2004/04/01 13:10:11 UTC
[mp2] Segmentation fault when starting Apache with mod_perl [Apache
2.0.49 / Perl 5.8.2 / mod_perl 1.99_13]
On Wed, 31 Mar 2004 10:09:01 -0800
Stas Bekman <st...@stason.org> wrote:
BTW, I subscribed to the list, so you needn't reply to my address too :)
> But definitely move first to 1.99_13 because we aren't going to debug on
> 1.99_12 and we need to be on the same page to have a better chance to
> reproduce the problem.
OK, I tried 1.99_13 with the same results. The build environment is the same as for 1.99_12 so I guess the same Bug Report Info applies here too (I can generate
another bug report if you need it though)
> We are not aware of this problem, Kiki. You need to give us more matter to be
> able to understand your problem. You don't have a problem to start the modperl > test suite, do you?
In fact any attempt to start apache with mod_perl (including the one in the test suite) causes a segmentation fault.
> If that's the case, you need to show us what configuration
> causes that, coming with a minimal possible case that you can still reproduce
> the problem with.
1. The command used to start apache is:
[kiki@eris ~/work/mod_perl-1.99_13]$ /usr/local/sbin/httpd -d /usr/home/kiki/work/mod_perl-1.99_13/t -f /usr/home/kiki/work/mod_perl-1.99_13/t/conf/httpd.conf -D APACHE2 -D PERL_USEITHREADS
Segmentation fault (core dumped)
2. The backtrace for the core file is:
(gdb) backtrace
#0 0x290ed4f7 in Perl_newSVpvn ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
#1 0x2913e219 in PerlIO_open ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
#2 0x29072363 in S_open_script ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
#3 0x2906f5a2 in S_parse_body ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
#4 0x2906e994 in perl_parse ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
#5 0x2902b78c in modperl_startup ()
from /usr/home/kiki/work/mod_perl-1.99_13/src/modules/perl/mod_perl.so
#6 0x2902b6ec in modperl_startup ()
from /usr/home/kiki/work/mod_perl-1.99_13/src/modules/perl/mod_perl.so
#7 0x2902bb19 in modperl_run ()
from /usr/home/kiki/work/mod_perl-1.99_13/src/modules/perl/mod_perl.so
#8 0x29030b69 in modperl_cmd_load_module ()
from /usr/home/kiki/work/mod_perl-1.99_13/src/modules/perl/mod_perl.so
#9 0x80664ca in invoke_cmd ()
#10 0x8067097 in ap_walk_config_sub ()
#11 0x80690f1 in ap_process_config_tree ()
#12 0x806bfae in main ()
#13 0x805d026 in _start ()
(gdb)
3. The httpd.conf configuration I've tried is the one generated by the test suite:
(I don't know which modules are optional and which are necessary, so if you could give me some hints for a more simple configuration, I will try it)
# WARNING: this file is generated, do not edit
# 01: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestConfig.pm:780
# 02: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestConfig.pm:798
# 03: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestConfig.pm:1355
# 04: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestRun.pm:490
# 05: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestRunPerl.pm:55
# 06: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestRun.pm:700
# 07: /usr/home/kiki/work/mod_perl-1.99_13/Apache-Test/lib/Apache/TestRun.pm:700
# 08: t/TEST:20
<IfModule !mod_access.c>
LoadModule access_module "/usr/local/libexec/apache2/mod_access.so"
</IfModule>
<IfModule !mod_auth.c>
LoadModule auth_module "/usr/local/libexec/apache2/mod_auth.so"
</IfModule>
<IfModule !mod_auth_anon.c>
LoadModule auth_anon_module "/usr/local/libexec/apache2/mod_auth_anon.so"
</IfModule>
<IfModule !mod_auth_dbm.c>
LoadModule auth_dbm_module "/usr/local/libexec/apache2/mod_auth_dbm.so"
</IfModule>
<IfModule !mod_ext_filter.c>
LoadModule ext_filter_module "/usr/local/libexec/apache2/mod_ext_filter.so"
</IfModule>
<IfModule !mod_include.c>
LoadModule include_module "/usr/local/libexec/apache2/mod_include.so"
</IfModule>
<IfModule !mod_deflate.c>
LoadModule deflate_module "/usr/local/libexec/apache2/mod_deflate.so"
</IfModule>
<IfModule !mod_log_config.c>
LoadModule log_config_module "/usr/local/libexec/apache2/mod_log_config.so"
</IfModule>
<IfModule !mod_env.c>
LoadModule env_module "/usr/local/libexec/apache2/mod_env.so"
</IfModule>
<IfModule !mod_mime_magic.c>
LoadModule mime_magic_module "/usr/local/libexec/apache2/mod_mime_magic.so"
</IfModule>
<IfModule !mod_cern_meta.c>
LoadModule cern_meta_module "/usr/local/libexec/apache2/mod_cern_meta.so"
</IfModule>
<IfModule !mod_expires.c>
LoadModule expires_module "/usr/local/libexec/apache2/mod_expires.so"
</IfModule>
<IfModule !mod_headers.c>
LoadModule headers_module "/usr/local/libexec/apache2/mod_headers.so"
</IfModule>
<IfModule !mod_usertrack.c>
LoadModule usertrack_module "/usr/local/libexec/apache2/mod_usertrack.so"
</IfModule>
<IfModule !mod_unique_id.c>
LoadModule unique_id_module "/usr/local/libexec/apache2/mod_unique_id.so"
</IfModule>
<IfModule !mod_setenvif.c>
LoadModule setenvif_module "/usr/local/libexec/apache2/mod_setenvif.so"
</IfModule>
<IfModule !mod_ssl.c>
LoadModule ssl_module "/usr/local/libexec/apache2/mod_ssl.so"
</IfModule>
<IfModule !mod_mime.c>
LoadModule mime_module "/usr/local/libexec/apache2/mod_mime.so"
</IfModule>
<IfModule !mod_status.c>
LoadModule status_module "/usr/local/libexec/apache2/mod_status.so"
</IfModule>
<IfModule !mod_autoindex.c>
LoadModule autoindex_module "/usr/local/libexec/apache2/mod_autoindex.so"
</IfModule>
<IfModule !mod_asis.c>
LoadModule asis_module "/usr/local/libexec/apache2/mod_asis.so"
</IfModule>
<IfModule !mod_info.c>
LoadModule info_module "/usr/local/libexec/apache2/mod_info.so"
</IfModule>
<IfModule !mod_cgi.c>
LoadModule cgi_module "/usr/local/libexec/apache2/mod_cgi.so"
</IfModule>
<IfModule !mod_vhost_alias.c>
LoadModule vhost_alias_module "/usr/local/libexec/apache2/mod_vhost_alias.so"
</IfModule>
<IfModule !mod_negotiation.c>
LoadModule negotiation_module "/usr/local/libexec/apache2/mod_negotiation.so"
</IfModule>
<IfModule !mod_dir.c>
LoadModule dir_module "/usr/local/libexec/apache2/mod_dir.so"
</IfModule>
<IfModule !mod_imap.c>
LoadModule imap_module "/usr/local/libexec/apache2/mod_imap.so"
</IfModule>
<IfModule !mod_actions.c>
LoadModule actions_module "/usr/local/libexec/apache2/mod_actions.so"
</IfModule>
<IfModule !mod_speling.c>
LoadModule speling_module "/usr/local/libexec/apache2/mod_speling.so"
</IfModule>
<IfModule !mod_userdir.c>
LoadModule userdir_module "/usr/local/libexec/apache2/mod_userdir.so"
</IfModule>
<IfModule !mod_alias.c>
LoadModule alias_module "/usr/local/libexec/apache2/mod_alias.so"
</IfModule>
<IfModule !mod_rewrite.c>
LoadModule rewrite_module "/usr/local/libexec/apache2/mod_rewrite.so"
</IfModule>
<IfModule !mod_php4.c>
LoadModule php4_module "/usr/local/libexec/apache2/libphp4.so"
</IfModule>
<IfModule !mod_dav.c>
LoadModule dav_module "/usr/local/libexec/apache2/mod_dav.so"
</IfModule>
<IfModule !mod_dav_svn.c>
LoadModule dav_svn_module "/usr/local/libexec/apache2/mod_dav_svn.so"
</IfModule>
<IfModule !mod_authz_svn.c>
LoadModule authz_svn_module "/usr/local/libexec/apache2/mod_authz_svn.so"
</IfModule>
<IfModule !mod_mime.c>
LoadModule mime_module "/usr/local/libexec/apache2/mod_mime.so"
</IfModule>
<IfModule !mod_perl.c>
LoadModule perl_module "/usr/home/kiki/work/mod_perl-1.99_13/src/modules/perl/mod_perl.so"
</IfModule>
User kiki
Group users
ServerName localhost:8529
Listen localhost:8529
ServerRoot "/usr/home/kiki/work/mod_perl-1.99_13/t"
DocumentRoot "/usr/home/kiki/work/mod_perl-1.99_13/t/htdocs"
PidFile /usr/home/kiki/work/mod_perl-1.99_13/t/logs/httpd.pid
ErrorLog /usr/home/kiki/work/mod_perl-1.99_13/t/logs/error_log
LogLevel debug
<IfModule mod_log_config.c>
TransferLog /usr/home/kiki/work/mod_perl-1.99_13/t/logs/access_log
</IfModule>
ServerAdmin calimanesti@eris.abc.ro
#needed for http/1.1 testing
KeepAlive On
HostnameLookups Off
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<IfModule worker.c>
StartServers 1
MaxClients 2
MinSpareThreads 2
MaxSpareThreads 2
ThreadsPerChild 2
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 1
StartThreads 2
MinSpareThreads 2
MaxSpareThreads 2
MaxThreadsPerChild 2
MaxRequestsPerChild 0
</IfModule>
<IfModule prefork.c>
StartServers 1
MaxClients 2
MaxRequestsPerChild 0
</IfModule>
<IfDefine APACHE1>
StartServers 1
MaxClients 2
MaxRequestsPerChild 0
</IfDefine>
<IfModule mpm_winnt.c>
ThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
<Location /server-info>
SetHandler server-info
</Location>
<Location /server-status>
SetHandler server-status
</Location>
<IfModule !mod_alias.c>
LoadModule alias_module "/usr/local/libexec/apache2/mod_alias.so"
</IfModule>
<IfModule mod_alias.c>
Alias /getfiles-binary-perl /usr/local/bin/perl5.8.2
Alias /getfiles-perl-pod /usr/local/lib/perl5/5.8.2/pod
Alias /getfiles-binary-httpd /usr/local/sbin/httpd
</IfModule>
TypesConfig "/usr/local/etc/apache2/mime.types"
Include "/usr/home/kiki/work/mod_perl-1.99_13/t/conf/extra.conf"
<IfModule mod_perl.c>
PerlPassEnv APACHE_TEST_TRACE_LEVEL
</IfModule>
<IfModule mod_perl.c>
PerlSwitches -Mlib=/usr/home/kiki/work/mod_perl-1.99_13/t
</IfModule>
<IfModule mod_perl.c>
PerlRequire /usr/home/kiki/work/mod_perl-1.99_13/t/conf/modperl_startup.pl
</IfModule>
PerlModule TestAPI::internal_redirect
<Location /TestAPI__internal_redirect_modperl>
SetHandler modperl
PerlResponseHandler TestAPI::internal_redirect::modperl
</Location>
<Location /TestAPI__internal_redirect_perl_script>
SetHandler perl-script
PerlResponseHandler TestAPI::internal_redirect::perl_script
</Location>
<Location /TestAPI__show>
SetHandler modperl
PerlResponseHandler TestAPI::show
</Location>
<Location /TestAPI__access>
Options None
Options Indexes FollowSymLinks
AuthName modperl
AuthType none
SetHandler modperl
PerlResponseHandler TestAPI::access
</Location>
<Location /TestAPI__request_rec>
PerlOptions +GlobalRequest
SetHandler modperl
PerlResponseHandler TestAPI::request_rec
</Location>
<Location /TestAPI__server_util>
SetHandler modperl
PerlResponseHandler TestAPI::server_util
</Location>
<Location /TestAPI__server_rec>
SetHandler modperl
PerlResponseHandler TestAPI::server_rec
</Location>
<Location /TestAPI__lookup_uri2__myplan>
SetHandler modperl
PerlResponseHandler TestAPI::lookup_uri2::myplan
</Location>
<Location /TestAPI__lookup_uri2__ok3>
SetHandler modperl
PerlResponseHandler TestAPI::lookup_uri2::ok3
</Location>
<Location /TestAPI__lookup_uri2>
SetHandler modperl
PerlResponseHandler TestAPI::lookup_uri2
</Location>
<Location /lookup_uri>
SetHandler modperl
PerlResponseHandler Apache::TestHandler::ok1
</Location>
<Location /TestAPI__lookup_uri>
SetHandler modperl
PerlResponseHandler TestAPI::lookup_uri
</Location>
<Location /TestAPI__conn_rec>
SetHandler modperl
PerlResponseHandler TestAPI::conn_rec
</Location>
PerlModule TestAPI::rflush
<Location /TestAPI__rflush>
SetHandler perl-script
PerlResponseHandler TestAPI::rflush::response
PerlOutputFilterHandler TestAPI::rflush::bracket
</Location>
<Location /TestAPI__response>
SetHandler modperl
PerlResponseHandler TestAPI::response
</Location>
<Location /TestAPI__query>
SetHandler modperl
PerlResponseHandler TestAPI::query
</Location>
<Location /TestAPI__r_subclass>
SetHandler perl-script
PerlOptions -GlobalRequest
PerlResponseHandler TestAPI::r_subclass
</Location>
<Location /TestAPI__server_const>
SetHandler modperl
PerlResponseHandler TestAPI::server_const
</Location>
<Location /TestAPI__uri>
SetHandler modperl
PerlResponseHandler TestAPI::uri
</Location>
<Location /TestAPI__aplog>
SetHandler modperl
PerlResponseHandler TestAPI::aplog
</Location>
<Location /TestAPI__sendfile>
SetHandler modperl
PerlResponseHandler TestAPI::sendfile
</Location>
<Location /TestAPI__rutil>
SetHandler modperl
PerlResponseHandler TestAPI::rutil
</Location>
<Location /TestAPI__module>
SetHandler modperl
PerlResponseHandler TestAPI::module
</Location>
Alias /slurp/ /usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/api/
<Location /slurp/>
SetHandler modperl
PerlResponseHandler TestAPI::slurp_filename
</Location>
<Location /TestModules__cgi2>
SetHandler modperl
PerlResponseHandler TestModules::cgi2
</Location>
<Location /TestModules__cgiupload>
SetHandler perl-script
PerlOptions +GlobalRequest
PerlResponseHandler TestModules::cgiupload
</Location>
<Location /TestModules__cgipost2>
SetHandler modperl
PerlResponseHandler TestModules::cgipost2
</Location>
<IfModule mod_proxy.c>
<Proxy http://localhost:8529/*>
<IfModule mod_access.c>
Order Deny,Allow
Deny from all
Allow from localhost
</IfModule>
</Proxy>
PerlModule TestModules::proxy
PerlTransHandler TestModules::proxy::proxy
<Location /TestModules__proxy_real>
SetHandler modperl
PerlResponseHandler TestModules::proxy::response
</Location>
</IfModule>
<Location /TestModules__cgiupload2>
SetHandler modperl
PerlResponseHandler TestModules::cgiupload2
</Location>
<Location /TestModules__cgipost>
SetHandler perl-script
PerlOptions +GlobalRequest
PerlResponseHandler TestModules::cgipost
</Location>
<Location /TestModules__cgi>
SetHandler perl-script
PerlOptions -SetupEnv
PerlResponseHandler TestModules::cgi
</Location>
# notice that perl-script is used on purpose here - testing whether
# :Apache perlio is reentrant (SetHandler modperl doesn't go through
# :Apache perlio layer)
# it's silly that we have to duplicate the resource, but mod_include
# otherwise thinks we have a recursive call loop
<Location /TestModules__include_subreq_dup>
PerlSetOutputFilter INCLUDES
Options +IncludesNoExec
SetHandler perl-script
PerlResponseHandler TestModules::include_subreq
</Location>
<Location /TestModules__include_subreq>
SetHandler perl-script
PerlSetOutputFilter INCLUDES
Options +IncludesNoExec
PerlResponseHandler TestModules::include_subreq
</Location>
<Location /TestModperl__print>
SetHandler modperl
PerlResponseHandler TestModperl::print
</Location>
<Location /TestModperl__endav>
SetHandler perl-script
PerlResponseHandler TestModperl::endav
</Location>
<Location /TestModperl__print_utf8>
SetHandler perl-script
PerlResponseHandler TestModperl::print_utf8
</Location>
<Location /TestModperl__print_utf8_2>
SetHandler modperl
PerlResponseHandler TestModperl::print_utf8_2
</Location>
PerlModule TestModperl::cookie
<Location /TestModperl__cookie>
SetHandler perl-script
PerlInitHandler Apache::TestHandler::same_interp_fixup
PerlAccessHandler TestModperl::cookie::access
PerlResponseHandler TestModperl::cookie
PerlOptions -SetupEnv
</Location>
<Location /TestModperl__setauth>
SetHandler modperl
PerlResponseHandler TestModperl::setauth
</Location>
PerlSetVar TestModperl__request_rec_Key_set_in_Base BaseValue
PerlSetVar TestModperl__server_rec_Key_set_in_Base 1_SetValue
PerlAddVar TestModperl__server_rec_Key_set_in_Base 2_AddValue 3_AddValue
<Location /TestModperl__dir_config>
PerlSetVar TestModperl__request_rec_ZeroKey 0
PerlSetVar TestModperl__request_rec_Key0 SetValue0
PerlSetVar TestModperl__request_rec_Key1 ToBeLost
PerlSetVar TestModperl__request_rec_Key1 1_SetValue
PerlAddVar TestModperl__request_rec_Key1 2_AddValue
PerlAddVar TestModperl__request_rec_Key1 3_AddValue 4_AddValue
PerlSetVar TestModperl__server_rec_Key_set_in_Base SubSecValue
SetHandler modperl
PerlResponseHandler TestModperl::dir_config
</Location>
PerlModule TestModperl::cookie2
<Location /TestModperl__cookie2>
SetHandler modperl
PerlInitHandler Apache::TestHandler::same_interp_fixup
PerlAccessHandler TestModperl::cookie2::access
PerlResponseHandler TestModperl::cookie2
</Location>
PerlModule TestModperl::current_callback
<Location /TestModperl__current_callback>
PerlHeaderParserHandler TestModperl::current_callback::headerparser
PerlFixupHandler TestModperl::current_callback::fixup
PerlResponseHandler TestModperl::current_callback
PerlLogHandler TestModperl::current_callback::log
SetHandler modperl
</Location>
<Location /TestModperl__request_rec_perlio_api>
SetHandler perl-script
PerlResponseHandler TestModperl::request_rec_perlio_api
</Location>
<Location /TestModperl__getc>
SetHandler modperl
PerlResponseHandler TestModperl::getc
</Location>
<Location /TestModperl__io_nested_with_closed_stds>
SetHandler perl-script
PerlResponseHandler TestModperl::io_nested_with_closed_stds
</Location>
PerlModule TestModperl::merge
Listen localhost:8530
<VirtualHost _default_:8530>
ServerName localhost:8530
# these should pass through all merges untouched
PerlPassEnv APACHE_TEST_HOSTTYPE
PerlSetEnv MergeSetEnv1 SetEnv1Val
PerlSetVar MergeSetVar1 SetVar1Val
PerlSetVar MergeAddVar1 AddVar1Val1
PerlAddVar MergeAddVar1 AddVar1Val2
# these are overridden in /merge2 and /merge2/merge3.html
PerlSetEnv MergeSetEnv2 SetEnv2Val
PerlSetVar MergeSetVar2 SetVar2Val
PerlSetVar MergeAddVar2 AddVar2Val1
PerlAddVar MergeAddVar2 AddVar2Val2
# these are overridden in /merge2/merge3.html only
PerlSetEnv MergeSetEnv3 SetEnv3Val
PerlSetVar MergeSetVar3 SetVar3Val
PerlSetVar MergeAddVar3 AddVar3Val1
PerlAddVar MergeAddVar3 AddVar3Val2
<Location /merge>
# same as per-server level
SetHandler perl-script
PerlResponseHandler TestModperl::merge
</Location>
AccessFileName htaccess
<Directory /usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/merge2>
# overrides "2" values - "1" and "3" values left untouched
PerlSetEnv MergeSetEnv2 SetEnv2Merge2Val
PerlSetVar MergeSetVar2 SetVar2Merge2Val
PerlSetVar MergeAddVar2 AddVar2Merge2Val1
PerlAddVar MergeAddVar2 AddVar2Merge2Val2
SetHandler perl-script
PerlResponseHandler TestModperl::merge
# don't trigger htaccess files automatically
AllowOverride none
<Files merge3.html>
# initiate a double merge with htaccess file
AllowOverride all
</Files>
</Directory>
</VirtualHost>
<Location /TestModperl__subenv>
PerlOptions -SetupEnv
SetHandler modperl
PerlResponseHandler TestModperl::subenv
</Location>
<Location /TestModperl__methodobj>
PerlResponseHandler $TestModperl::MethodObj->handler
SetHandler modperl
</Location>
<Location /TestModperl__method>
SetHandler modperl
PerlResponseHandler TestModperl::method
</Location>
<Location /TestModperl__pnotes>
SetHandler modperl
PerlResponseHandler TestModperl::pnotes
</Location>
<Location /TestModperl__perl>
SetHandler modperl
PerlResponseHandler TestModperl::perl
</Location>
<Location /TestModperl__exit>
SetHandler modperl
PerlResponseHandler TestModperl::exit
</Location>
<Location /TestModperl__request_rec_tie_api>
SetHandler modperl
PerlResponseHandler TestModperl::request_rec_tie_api
</Location>
<Location /TestModperl__readline>
SetHandler modperl
PerlResponseHandler TestModperl::readline
</Location>
PerlModule TestModperl::printf
<Location /TestModperl__printf>
PerlFixupHandler TestModperl::printf::fixup
SetHandler modperl
PerlResponseHandler TestModperl::printf
</Location>
<Location /TestModperl__post_utf8>
SetHandler perl-script
PerlResponseHandler TestModperl::post_utf8
</Location>
<Location /TestModperl__env>
SetHandler perl-script
PerlResponseHandler TestModperl::env
</Location>
<Location /TestModperl__status>
SetHandler modperl
PerlResponseHandler TestModperl::status
</Location>
<Location /TestModperl__sameinterp>
PerlFixupHandler Apache::TestHandler::same_interp_fixup
SetHandler modperl
PerlResponseHandler TestModperl::sameinterp
</Location>
Listen localhost:8531
<VirtualHost _default_:8531>
ServerName localhost:8531
PerlOptions -PreConnection -ProcessConnection
PerlOptions -Autoload -Log -InputFilter -OutputFilter
PerlOptions +ChildInit +ChildExit
PerlModule TestModperl::perl_options
PerlOptions +ParseHeaders
<Location /TestModperl__perl_options>
SetHandler modperl
PerlOptions -GlobalRequest -SetupEnv
PerlOptions +MergeHandlers
PerlResponseHandler TestModperl::perl_options
</Location>
</VirtualHost>
PerlModule TestModperl::io_with_closed_stds
<Location /TestModperl__io_with_closed_stds>
SetHandler perl-script
PerlFixupHandler TestModperl::io_with_closed_stds::fixup
PerlResponseHandler TestModperl::io_with_closed_stds
PerlCleanupHandler TestModperl::io_with_closed_stds::cleanup
</Location>
<Location /TestModperl__taint>
SetHandler modperl
PerlResponseHandler TestModperl::taint
</Location>
<Location /TestModperl__methodname>
PerlResponseHandler TestModperl::methodname->response
SetHandler modperl
</Location>
# create a separate virtual host so we can use
# keepalives - a per-connection interpreter is
# the only way to make sure that we can plan in
# one request and test in subsequent tests
Listen localhost:8532
<VirtualHost _default_:8532>
ServerName localhost:8532
KeepAlive On
<IfDefine PERL_ITHREADS>
PerlInterpScope connection
</IfDefine>
PerlModule TestModperl::setupenv
PerlPostReadRequestHandler TestModperl::setupenv::subenv_one
# SetEnv is affected by +SetupEnv
SetEnv SRV_SETENV server
# PerlSetEnv is not affected by +SetupEnv or -SetupEnv
# it is entirely separate and always set if configured
PerlSetEnv SRV_PERLSETENV server
# plan
<Location /TestModperl__setupenv>
SetHandler modperl
PerlResponseHandler TestModperl::setupenv
</Location>
# default modperl handler
# %ENV should not contain standard CGI variables
# or entries from the subprocess_env table
<Location /TestModperl__setupenv_mpdefault>
SetHandler modperl
PerlResponseHandler TestModperl::setupenv::noenv
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV mpdefault
PerlSetEnv DIR_PERLSETENV mpdefault
</Location>
# modperl handler + SetupEnv
# %ENV should contain CGI variables as well as
# anything put into the subprocess_env table
<Location /TestModperl__setupenv_mpsetup>
SetHandler modperl
PerlResponseHandler TestModperl::setupenv::env
PerlOptions +SetupEnv
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV mpsetup
PerlSetEnv DIR_PERLSETENV mpsetup
</Location>
# $r->subprocess_env in a void context with no args
# should do the same as +SetupEnv wrt CGI variables
# and entries already in the subprocess_env table
# but subprocess_env entries that appear later will
# not show up in %ENV
<Location /TestModperl__setupenv_mpvoid>
SetHandler modperl
PerlResponseHandler TestModperl::setupenv::someenv
PerlHeaderParserHandler TestModperl::setupenv::subenv_void
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV mpvoid
PerlSetEnv DIR_PERLSETENV mpvoid
</Location>
# +SetupEnv should always populate %ENV fully prior
# to running the content handler (regardless of when
# $r->subprocess_env() was called) to ensure that
# %ENV is an accurate representation of the
# subprocess_env table
<Location /TestModperl__setupenv_mpsetupvoid>
SetHandler modperl
PerlResponseHandler TestModperl::setupenv::env
PerlOptions +SetupEnv
PerlHeaderParserHandler TestModperl::setupenv::subenv_void
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV mpsetupvoid
PerlSetEnv DIR_PERLSETENV mpsetupvoid
</Location>
# default perl-script handler is equivalent to +SetupEnv
# CGI variables and subprocess_env entries will be in %ENV
<Location /TestModperl__setupenv_psdefault>
SetHandler perl-script
PerlResponseHandler TestModperl::setupenv::env
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV psdefault
PerlSetEnv DIR_PERLSETENV psdefault
</Location>
# -SetupEnv should not put CGI variables or subprocess_env
# entries in %ENV
<Location /TestModperl__setupenv_psnosetup>
SetHandler perl-script
PerlResponseHandler TestModperl::setupenv::noenv
PerlOptions -SetupEnv
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV psnosetup
PerlSetEnv DIR_PERLSETENV psnosetup
</Location>
# +SetupEnv should always populate %ENV fully prior
# to running the content handler (regardless of when
# $r->subprocess_env() was called) to ensure that
# %ENV is an accurate representation of the
# subprocess_env table
<Location /TestModperl__setupenv_psvoid>
SetHandler perl-script
PerlResponseHandler TestModperl::setupenv::env
PerlHeaderParserHandler TestModperl::setupenv::subenv_void
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV psvoid
PerlSetEnv DIR_PERLSETENV psvoid
</Location>
# equivalent to modperl handler with $r->subprocess_env() -
# CGI variables are there, but not subprocess_env entries
# that are populated after the void call
<Location /TestModperl__setupenv_psnosetupvoid>
SetHandler perl-script
PerlResponseHandler TestModperl::setupenv::someenv
PerlOptions -SetupEnv
PerlHeaderParserHandler TestModperl::setupenv::subenv_void
PerlFixupHandler TestModperl::setupenv::subenv_two
SetEnv DIR_SETENV psnosetupvoid
PerlSetEnv DIR_PERLSETENV psnosetupvoid
</Location>
</VirtualHost>
<Location /TestDirective__pod>
SetHandler modperl
PerlResponseHandler TestDirective::pod
</Location>
<Location /TestDirective__perldo>
SetHandler modperl
PerlResponseHandler TestDirective::perldo
</Location>
<Location /TestDirective__setupenv>
PerlOptions +SetupEnv
SetHandler modperl
PerlResponseHandler TestDirective::setupenv
</Location>
# SetupEnv ought to have no effect on PerlSetEnv or PerlPassEnv
# per-server entry overwritten by per-directory entry
PerlSetEnv TestDirective__env_srv1 env_srv1
# per-server entry not overwritten
PerlSetEnv TestDirective__env_srv2 env_srv2
# PerlPassEnv is only per-server
PerlPassEnv APACHE_TEST_HOSTNAME
# per-directory entry overwrites per-server
# PerlSetEnv resets the table for each directive
<Location /TestDirective__env>
PerlOptions -SetupEnv
PerlSetEnv TestDirective__env_srv1 env_dir1
PerlSetEnv TestDirective__env_dir2 ToBeLost
PerlSetEnv TestDirective__env_dir2 env_dir2
SetHandler modperl
PerlResponseHandler TestDirective::env
</Location>
<Location /TestAPR__brigade>
SetHandler modperl
PerlResponseHandler TestAPR::brigade
</Location>
<Location /TestAPR__util>
SetHandler modperl
PerlResponseHandler TestAPR::util
</Location>
<Location /TestAPR__finfo>
SetHandler modperl
PerlResponseHandler TestAPR::finfo
</Location>
<Location /TestAPR__netlib>
SetHandler modperl
PerlResponseHandler TestAPR::netlib
</Location>
<Location /TestAPR__pool>
SetHandler modperl
PerlResponseHandler TestAPR::pool
</Location>
<Location /TestAPR__uuid>
SetHandler modperl
PerlResponseHandler TestAPR::uuid
</Location>
<Location /TestAPR__string>
SetHandler modperl
PerlResponseHandler TestAPR::string
</Location>
<Location /TestAPR__table>
SetHandler modperl
PerlResponseHandler TestAPR::table
</Location>
<Location /TestAPR__socket>
SetHandler modperl
PerlResponseHandler TestAPR::socket
</Location>
<Location /TestAPR__flatten>
SetHandler modperl
PerlResponseHandler TestAPR::flatten
</Location>
<Location /TestAPR__os>
SetHandler modperl
PerlResponseHandler TestAPR::os
</Location>
<Location /TestAPR__perlio>
SetHandler modperl
PerlResponseHandler TestAPR::perlio
</Location>
<Location /TestAPR__threadmutex>
SetHandler modperl
PerlResponseHandler TestAPR::threadmutex
</Location>
<Location /TestAPR__date>
SetHandler modperl
PerlResponseHandler TestAPR::date
</Location>
<Location /TestAPR__base64>
SetHandler modperl
PerlResponseHandler TestAPR::base64
</Location>
# this should work regardless whether parse headers is on or off
<Location /TestApache__send_cgi_header>
PerlOptions -ParseHeaders
SetHandler modperl
PerlResponseHandler TestApache::send_cgi_header
</Location>
<Location /TestApache__subprocess>
SetHandler modperl
PerlResponseHandler TestApache::subprocess
</Location>
<Location /TestApache__write>
SetHandler modperl
PerlResponseHandler TestApache::write
</Location>
<Location /TestApache__scanhdrs2>
SetHandler perl-script
PerlOptions +ParseHeaders
PerlResponseHandler TestApache::scanhdrs2
</Location>
<Location /TestApache__post>
SetHandler modperl
PerlResponseHandler TestApache::post
</Location>
<Location /TestApache__read>
SetHandler modperl
PerlResponseHandler TestApache::read
</Location>
<Location /TestApache__conftree>
SetHandler modperl
PerlResponseHandler TestApache::conftree
</Location>
<Location /TestApache__discard_rbody>
SetHandler modperl
PerlResponseHandler TestApache::discard_rbody
</Location>
<Location /TestApache__scanhdrs>
SetHandler perl-script
PerlOptions +ParseHeaders
PerlResponseHandler TestApache::scanhdrs
</Location>
<Location /TestApache__util>
SetHandler modperl
PerlResponseHandler TestApache::util
</Location>
<IfDefine PERL_ITHREADS>
PerlInterpScope handler
</Ifdefine>
<Location /TestApache__cgihandler>
SetHandler perl-script
PerlResponseHandler TestApache::cgihandler
</Location>
<Location /TestError__runtime>
SetHandler modperl
PerlResponseHandler TestError::runtime
</Location>
<Location /TestError__syntax>
SetHandler modperl
PerlResponseHandler TestError::syntax
</Location>
<Location /TestError__api>
PerlOptions -GlobalRequest
SetHandler modperl
PerlResponseHandler TestError::api
</Location>
<Location /TestCompat__request_body>
PerlOptions +GlobalRequest
SetHandler modperl
PerlResponseHandler TestCompat::request_body
</Location>
<Location /TestCompat__apache_file>
PerlOptions +GlobalRequest
SetHandler modperl
PerlResponseHandler TestCompat::apache_file
</Location>
<Location /TestCompat__apache_util>
PerlOptions +GlobalRequest
SetHandler modperl
PerlResponseHandler TestCompat::apache_util
</Location>
<Location /TestCompat__conn_authen>
require valid-user
AuthType Basic
AuthName simple
SetHandler modperl
PerlOptions +GlobalRequest
PerlAuthenHandler TestCompat::conn_authen
PerlResponseHandler Apache::TestHandler::ok1
</Location>
<Location /TestCompat__request>
SetHandler modperl
PerlResponseHandler TestCompat::request
</Location>
<Location /TestCompat__apache_uri>
SetHandler modperl
PerlResponseHandler TestCompat::apache_uri
</Location>
<Location /TestCompat__send_fd>
SetHandler modperl
PerlResponseHandler TestCompat::send_fd
</Location>
<Location /TestCompat__apache_table>
SetHandler modperl
PerlResponseHandler TestCompat::apache_table
</Location>
<Location /TestCompat__conn_rec>
SetHandler modperl
PerlResponseHandler TestCompat::conn_rec
</Location>
# so we can test whether send_httpd_header() works fine
<Location /TestCompat__apache>
PerlOptions +ParseHeaders
SetHandler modperl
PerlResponseHandler TestCompat::apache
</Location>
Listen localhost:8533
<VirtualHost _default_:8533>
ServerName localhost:8533
DocumentRoot /usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/vhost
<IfDefine PERL_USEITHREADS>
# a new interpreter pool
PerlOptions +Parent
</IfDefine>
# use test system's @INC
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t
# mp2 modules
PerlRequire "/usr/home/kiki/work/mod_perl-1.99_13/t/conf/modperl_inc.pl"
# private to this vhost stuff
PerlRequire "/usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/vhost/startup.pl"
# <Location /TestVhost__config> container is added via add_config
# in t/htdocs/vhost/startup.pl
</VirtualHost>
PerlModule TestPerl::hash_attack
# call twice to verify an access to the same hash value after the rehash
<Location /TestPerl__hash_attack>
PerlInitHandler TestPerl::hash_attack::init
PerlFixupHandler TestPerl::hash_attack::fixup TestPerl::hash_attack::fixup
SetHandler modperl
PerlResponseHandler TestPerl::hash_attack
</Location>
<Location /TestPerl__api>
SetHandler modperl
PerlResponseHandler TestPerl::api
</Location>
Listen localhost:8534
<VirtualHost _default_:8534>
PerlProcessConnectionHandler TestProtocol::echo_filter
</VirtualHost>
Listen localhost:8535
<VirtualHost _default_:8535>
PerlProcessConnectionHandler TestProtocol::echo
</VirtualHost>
Listen localhost:8536
<VirtualHost _default_:8536>
ServerName localhost:8536
PerlPreConnectionHandler TestPreConnection::note
<Location /TestPreConnection__note>
SetHandler modperl
PerlResponseHandler TestPreConnection::note::response
</Location>
</VirtualHost>
<Location /TestHooks__set_handlers>
PerlHeaderParserHandler TestHooks::set_handlers
</Location>
<Location /TestHooks__cleanup2>
SetHandler modperl
PerlResponseHandler TestHooks::cleanup2
</Location>
PerlModule TestHooks::init
PerlInitHandler TestHooks::init::first
<Location /TestHooks__init>
PerlInitHandler TestHooks::init::second
PerlResponseHandler TestHooks::init
PerlResponseHandler TestHooks::init::response
SetHandler modperl
</Location>
PerlModule TestHooks::access
<Location /TestHooks__access>
PerlAccessHandler TestHooks::access
PerlInitHandler TestHooks::access::init
PerlFixupHandler TestHooks::access::fixup
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
</Location>
#<Location />
# PerlAccessHandler TestHooks::access
#</Location>
<Location /TestHooks__fixup>
PerlResponseHandler TestHooks::fixup::response
SetHandler modperl
PerlFixupHandler TestHooks::fixup
</Location>
<Location /TestHooks__push_handlers>
SetHandler modperl
PerlHeaderParserHandler TestHooks::push_handlers
PerlResponseHandler TestHooks::push_handlers::conf
PerlResponseHandler TestHooks::push_handlers::conf1 TestHooks::push_handlers::conf2
</Location>
PerlTransHandler TestHooks::trans
<Location /TestHooks__trans>
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
</Location>
<Location /TestHooks__cleanup>
SetHandler modperl
PerlCleanupHandler TestHooks::cleanup::cleanup1
PerlResponseHandler TestHooks::cleanup
</Location>
<Location /TestHooks__stacked_handlers>
SetHandler modperl
PerlHeaderParserHandler TestHooks::stacked_handlers
</Location>
# create a new virtual host so we can test (almost all) all the hooks
Listen localhost:8537
<VirtualHost _default_:8537>
ServerName localhost:8537
PerlModule TestHooks::stacked_handlers2
# all 2 run
PerlPostReadRequestHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
# 1 run, 1 left behind
PerlTransHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::server_error
# 1 run, 1 left behind
PerlMapToStorageHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::server_error
<Location /TestHooks__stacked_handlers2>
# all 4 run
PerlHeaderParserHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::declined
PerlHeaderParserHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
# all 2 run
PerlAccessHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
# 2 run, 1 left behind
PerlAuthenHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
PerlAuthenHandler TestHooks::stacked_handlers2::auth_required
# 2 run, 1 left behind
PerlAuthzHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
PerlAuthzHandler TestHooks::stacked_handlers2::auth_required
# 1 run, 1 left behind
PerlTypeHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers3::server_error
# all 2 run
PerlFixupHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
# 2 run, 2 left behind
PerlResponseHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2
PerlResponseHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::server_error
SetHandler modperl
AuthType Basic
Require valid-user
PerlOutputFilterHandler TestHooks::stacked_handlers2::passthru TestHooks::stacked_handlers2::filter
</Location>
</VirtualHost>
<Location /TestHooks__headerparser>
PerlOptions +SetupEnv
PerlResponseHandler TestHooks::headerparser::response
SetHandler modperl
PerlHeaderparserHandler TestHooks::headerparser
</Location>
PerlModule TestHooks::authz
<Location /TestHooks__authz>
require user dougm
AuthType Basic
AuthName simple
PerlAuthenHandler TestHooks::authz::auth_any
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
PerlAuthzHandler TestHooks::authz
</Location>
Listen localhost:8538
<VirtualHost _default_:8538>
ServerName localhost:8538
PerlSetVar PostConfig VHost
PerlModule TestHooks::startup
PerlPostConfigHandler TestHooks::startup::post_config
PerlOpenLogsHandler TestHooks::startup::open_logs
<Location /TestHooks__startup>
SetHandler modperl
PerlResponseHandler TestHooks::startup
</Location>
</VirtualHost>
PerlSetVar PostConfig Main
PerlModule TestHooks::startup
PerlPostConfigHandler TestHooks::startup::post_config
PerlOpenLogsHandler TestHooks::startup::open_logs
<Location /TestHooks__startup>
SetHandler modperl
PerlResponseHandler TestHooks::startup
</Location>
<Location /TestHooks__push_handlers_same_phase>
SetHandler modperl
PerlResponseHandler TestHooks::push_handlers_same_phase
</Location>
<Location /TestHooks__push_handlers_blessed>
SetHandler modperl
PerlResponseHandler TestHooks::push_handlers_blessed
</Location>
<Location /TestHooks__authen>
require valid-user
AuthType Basic
AuthName simple
PerlResponseHandler Apache::TestHandler::ok1
SetHandler modperl
PerlAuthenHandler TestHooks::authen
</Location>
PerlModule TestFilter::in_error
<Location /TestFilter__in_error>
SetHandler modperl
PerlResponseHandler TestFilter::in_error::response
PerlInputFilterHandler TestFilter::in_error
</Location>
PerlModule TestFilter::out_init_basic
<Location /TestFilter__out_init_basic>
SetHandler modperl
PerlResponseHandler TestFilter::out_init_basic::response
PerlOutputFilterHandler TestFilter::out_init_basic::transparent
</Location>
Listen localhost:8539
<VirtualHost _default_:8539>
ServerName localhost:8539
PerlModule TestFilter::in_bbs_inject_header
PerlInputFilterHandler TestFilter::in_bbs_inject_header
<Location /TestFilter__in_bbs_inject_header>
SetHandler modperl
PerlResponseHandler TestFilter::in_bbs_inject_header::response
</Location>
</VirtualHost>
PerlModule TestFilter::out_str_remove
<Location /TestFilter__out_str_remove>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_remove::response
PerlOutputFilterHandler TestFilter::out_str_remove::insert_underscores
PerlOutputFilterHandler TestFilter::out_str_remove::upcase_n_remove
</Location>
PerlModule TestFilter::out_str_subreq_modperl
<Location /modperl_subrequest>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_subreq_modperl::subrequest
</Location>
<Location /TestFilter__out_str_subreq_modperl>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_subreq_modperl::response
PerlOutputFilterHandler TestFilter::out_str_subreq_modperl::include
</Location>
PerlModule TestFilter::out_str_declined
<Location /TestFilter__out_str_declined>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_declined::response
PerlOutputFilterHandler TestFilter::out_str_declined::decline
PerlOutputFilterHandler TestFilter::out_str_declined::black_hole
</Location>
PerlModule TestFilter::in_bbs_underrun
#PerlInputFilterHandler ModPerl::TestFilterDebug::snoop_request
<Location /TestFilter__in_bbs_underrun>
SetHandler modperl
PerlResponseHandler TestFilter::in_bbs_underrun::response
PerlInputFilterHandler TestFilter::in_bbs_underrun::handler
</Location>
PerlModule TestFilter::out_str_subreq_default
Alias /default_subrequest /usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/filter
<Location /default_subrequest>
SetHandler default-handler
</Location>
<Location /TestFilter__out_str_subreq_default>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_subreq_default::response
PerlOutputFilterHandler TestFilter::out_str_subreq_default::include
</Location>
PerlModule TestFilter::out_str_req_eos
<Location /TestFilter__out_str_req_eos>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_req_eos
PerlOutputFilterHandler TestFilter::out_str_req_eos::add_prefix
PerlOutputFilterHandler TestFilter::out_str_req_eos::add_suffix
</Location>
PerlModule TestFilter::out_bbs_ctx
<Location /TestFilter__out_bbs_ctx>
SetHandler modperl
PerlResponseHandler TestFilter::out_bbs_ctx::response
PerlOutputFilterHandler TestFilter::out_bbs_ctx
</Location>
PerlModule TestFilter::out_str_api
<Location /TestFilter__out_str_api>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_api::response
PerlOutputFilterHandler TestFilter::out_str_api
</Location>
PerlModule TestFilter::in_bbs_body
<Location /TestFilter__in_bbs_body>
SetHandler modperl
PerlResponseHandler TestFilter::in_bbs_body::response
PerlInputFilterHandler TestFilter::in_bbs_body
</Location>
PerlModule TestFilter::in_str_consume
#PerlInputFilterHandler ModPerl::TestFilterDebug::snoop_request
#PerlInputFilterHandler ModPerl::TestFilterDebug::snoop_request
<Location /TestFilter__in_str_consume>
SetHandler modperl
PerlResponseHandler TestFilter::in_str_consume::response
PerlInputFilterHandler TestFilter::in_str_consume::handler
</Location>
PerlModule TestFilter::out_str_reverse
<LocationMatch "/filter/reverse.txt">
PerlOutputFilterHandler TestFilter::out_str_reverse
</LocationMatch>
<Location /TestFilter__out_str_reverse>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_reverse::response
PerlOutputFilterHandler TestFilter::out_str_reverse
</Location>
PerlModule TestFilter::out_str_ctx
<Location /TestFilter__out_str_ctx>
SetHandler modperl
PerlResponseHandler TestFilter::out_str_ctx::response
PerlOutputFilterHandler TestFilter::out_str_ctx
</Location>
PerlModule TestFilter::in_str_sandwich
<Location /TestFilter__in_str_sandwich>
SetHandler modperl
PerlResponseHandler TestFilter::in_str_sandwich::response
PerlInputFilterHandler TestFilter::in_str_sandwich
</Location>
PerlModule TestFilter::in_init_basic
<Location /TestFilter__in_init_basic>
SetHandler modperl
PerlResponseHandler TestFilter::in_init_basic::response
PerlInputFilterHandler TestFilter::in_init_basic::suicide
PerlInputFilterHandler TestFilter::in_init_basic::transparent
</Location>
PerlModule TestFilter::out_str_req_mix
<Location /TestFilter__out_str_req_mix>
Options +Includes
PerlOutputFilterHandler TestFilter::out_str_req_mix::adjust
PerlSetOutputFilter INCLUDES
PerlOutputFilterHandler TestFilter::out_str_req_mix::adjust
SetHandler modperl
PerlResponseHandler TestFilter::out_str_req_mix
</Location>
PerlModule TestFilter::out_bbs_basic
<Location /TestFilter__out_bbs_basic>
SetHandler modperl
PerlResponseHandler TestFilter::out_bbs_basic::response
PerlOutputFilterHandler TestFilter::out_bbs_basic
</Location>
PerlModule TestFilter::in_str_lc
<Location /TestFilter__in_str_lc>
SetHandler modperl
PerlResponseHandler TestFilter::in_str_lc::response
PerlInputFilterHandler TestFilter::in_str_lc
</Location>
PerlModule TestFilter::both_str_req_mix
<Location /TestFilter__both_str_req_mix>
Options +Includes
# DEFLATE has a higher priority (AP_FTYPE_CONTENT_SET=20) than
# mod_perl request filters (AP_FTYPE_RESOURCE=10), so it's going
# to filter input first no matter how we insert other mod_perl
# filters. (mod_perl connection filter handlers have an even
# higher priority (AP_FTYPE_PROTOCOL = 30), see
# include/util_filter.h for those definitions).
#
# PerlSetInputFilter is only useful for preserving the
# insertion order of filters with the same priority
SetInputFilter DEFLATE
#PerlInputFilterHandler ModPerl::TestFilterDebug::snoop_request
PerlInputFilterHandler TestFilter::both_str_req_mix::in_adjust
PerlInputFilterHandler TestFilter::both_str_req_mix::transparent
# here INCLUDES and adjust are both of the same priority
# (AP_FTYPE_RESOURCE), so PerlSetOutputFilter
PerlOutputFilterHandler TestFilter::both_str_req_mix::out_adjust_before_ssi
PerlSetOutputFilter INCLUDES
PerlOutputFilterHandler TestFilter::both_str_req_mix::out_adjust_after_ssi
#PerlOutputFilterHandler ModPerl::TestFilterDebug::snoop_request
PerlSetOutputFilter DEFLATE
SetHandler modperl
PerlResponseHandler TestFilter::both_str_req_mix
</Location>
<Location /TestFilter__in_autoload>
SetHandler modperl
PerlResponseHandler ModPerl::Test::pass_through_response_handler
# no PerlModule TestFilter::in_load on purpose
PerlInputFilterHandler TestFilter::in_autoload
</Location>
Listen localhost:8540
<VirtualHost _default_:8540>
ServerName localhost:8540
PerlModule TestFilter::in_str_msg
PerlInputFilterHandler TestFilter::in_str_msg
<Location /TestFilter__in_str_msg>
SetHandler modperl
PerlResponseHandler TestFilter::in_str_msg::response
</Location>
</Virtualhost>
<Location /TestFilter__in_str_msg>
PerlInputFilterHandler TestFilter::in_str_msg
</Location>
PerlModule TestFilter::both_str_req_add
<Location /TestFilter__both_str_req_add>
SetHandler modperl
PerlHeaderParserHandler TestFilter::both_str_req_add::header_parser
PerlResponseHandler TestFilter::both_str_req_add
</Location>
Listen localhost:8541
<VirtualHost _default_:8541>
ServerName localhost:8541
PerlModule TestFilter::both_str_con_add
PerlPreConnectionHandler TestFilter::both_str_con_add::pre_connection
PerlProcessConnectionHandler TestFilter::both_str_con_add
</VirtualHost>
<IfModule mod_proxy.c>
<Proxy http://localhost:8529/*>
<IfModule mod_access.c>
Order Deny,Allow
Deny from all
Allow from localhost
</IfModule>
</Proxy>
ProxyRequests Off
RewriteEngine On
ProxyPass /TestFilter__both_str_req_proxy/ \
http://localhost:8529/TestFilter__both_str_req_proxy_content/
ProxyPassReverse /TestFilter__both_str_req_proxy/ \
http://localhost:8529/TestFilter__both_str_req_proxy_content/
</IfModule>
PerlModule TestFilter::both_str_req_proxy
<Location /TestFilter__both_str_req_proxy>
PerlInputFilterHandler TestFilter::both_str_req_proxy::in_filter
PerlOutputFilterHandler TestFilter::both_str_req_proxy::out_filter
</Location>
<Location /TestFilter__both_str_req_proxy_content>
SetHandler modperl
PerlResponseHandler TestFilter::both_str_req_proxy
</Location>
Listen localhost:8542
<VirtualHost _default_:8542>
ServerName localhost:8542
PerlModule TestFilter::in_bbs_msg
PerlInputFilterHandler TestFilter::in_bbs_msg
<Location /TestFilter__in_bbs_msg>
SetHandler modperl
PerlResponseHandler TestFilter::in_bbs_msg::response
</Location>
</VirtualHost>
PerlModule TestFilter::in_bbs_consume
<Location /TestFilter__in_bbs_consume>
SetHandler modperl
PerlResponseHandler TestFilter::in_bbs_consume::response
PerlInputFilterHandler TestFilter::in_bbs_consume
</Location>
<Location /top_dir>
PerlOutputFilterHandler TestFilter::out_str_lc
</Location>
Alias /top_dir /usr/home/kiki/work/mod_perl-1.99_13
<Location /TestFilter__out_str_lc>
PerlOutputFilterHandler TestFilter::out_str_lc
</Location>
PerlModule TestFilter::in_str_declined
<Location /TestFilter__in_str_declined>
SetHandler modperl
PerlResponseHandler TestFilter::in_str_declined::response
PerlInputFilterHandler TestFilter::in_str_declined
</Location>
# APACHE_TEST_CONFIG_ORDER 940
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/testdirective/perlmodule-vh
Listen localhost:8543
<VirtualHost _default_:8543>
ServerName localhost:8543
PerlModule ApacheTest::PerlModuleTest
<Location /TestDirective__perlmodule>
SetHandler modperl
PerlResponseHandler TestDirective::perlmodule
</Location>
</Virtualhost>
<Location /TestDirective__perlmodule>
SetHandler modperl
PerlResponseHandler TestDirective::perlmodule
</Location>
# APACHE_TEST_CONFIG_ORDER 940
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/testdirective/main
PerlRequire "ApacheTest/PerlRequireTest.pm"
Listen localhost:8544
<VirtualHost _default_:8544>
ServerName localhost:8544
<IfDefine PERL_USEITHREADS>
# a new interpreter pool
PerlOptions +Parent
</IfDefine>
# use test system's @INC
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t
PerlRequire "conf/modperl_inc.pl"
PerlModule Apache2
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t/htdocs/testdirective/vh
PerlRequire "ApacheTest/PerlRequireTest.pm"
<Location /TestDirective__perlrequire>
SetHandler modperl
PerlResponseHandler TestDirective::perlrequire
</Location>
</Virtualhost>
<Location /TestDirective__perlrequire>
SetHandler modperl
PerlResponseHandler TestDirective::perlrequire
</Location>
# APACHE_TEST_CONFIG_ORDER 941
Listen localhost:8545
<VirtualHost _default_:8545>
ServerName localhost:8545
<IfDefine PERL_USEITHREADS>
# a new interpreter pool
PerlOptions +Parent
</IfDefine>
# use test system's @INC
PerlSwitches -I/usr/home/kiki/work/mod_perl-1.99_13/t
PerlRequire "conf/modperl_inc.pl"
PerlModule Apache2
<Location /TestPerl__ithreads>
SetHandler modperl
PerlResponseHandler TestPerl::ithreads
</Location>
</Virtualhost>
<Location /TestPerl__ithreads>
SetHandler modperl
PerlResponseHandler TestPerl::ithreads
</Location>
# APACHE_TEST_CONFIG_ORDER 950
PerlLoadModule TestDirective::perlloadmodule4
Listen localhost:8546
<VirtualHost _default_:8546>
ServerName localhost:8546
# here perlloadmodule sets scfg on behalf of the base server
MyTest4 "Vhost"
<Location /TestDirective__perlloadmodule4>
MyTest4 "Dir"
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule4
</Location>
</Virtualhost>
<Location /TestDirective__perlloadmodule4>
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule4
</Location>
# APACHE_TEST_CONFIG_ORDER 950
PerlLoadModule TestDirective::perlloadmodule2
MyMergeTest one two
<Location /TestDirective__perlloadmodule2>
MyMergeTest three four
</Location>
<Location /TestDirective__perlloadmodule2/subdir>
MyMergeTest five
MyMergeTest six
</Location>
<Location /TestDirective__perlloadmodule2>
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule2
</Location>
# APACHE_TEST_CONFIG_ORDER 950
PerlLoadModule TestDirective::perlloadmodule
MyTest one two
ServerTest per-server
<Location /TestDirective__perlloadmodule>
MyOtherTest value
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule
</Location>
# APACHE_TEST_CONFIG_ORDER 950
PerlLoadModule TestDirective::perlloadmodule5
Listen localhost:8547
<VirtualHost _default_:8547>
ServerName localhost:8547
# here mod_perl sets the scfg by itself for this vhost
PerlModule File::Spec
MyTest5 "Vhost"
<Location /TestDirective__perlloadmodule5>
MyTest5 "Dir"
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule5
</Location>
</Virtualhost>
<Location /TestDirective__perlloadmodule5>
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule5
</Location>
# APACHE_TEST_CONFIG_ORDER 950
PerlLoadModule TestDirective::perlloadmodule3
MyPlus 5
MyList "MainServer"
MyAppend "MainServer"
MyOverride "MainServer"
Listen localhost:8548
<VirtualHost _default_:8548>
ServerName localhost:8548
MyPlus 2
MyList "VHost"
MyAppend "VHost"
MyOverride "VHost"
<Location /TestDirective__perlloadmodule3>
MyPlus 3
MyList "Dir"
MyAppend "Dir"
MyOverride "Dir"
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule3
</Location>
<Location /TestDirective__perlloadmodule3/subdir>
MyPlus 1
MyList "SubDir"
MyAppend "SubDir"
MyOverride "SubDir"
</Location>
</Virtualhost>
<Location /TestDirective__perlloadmodule3>
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule3
</Location>
# XXX: we want to have this configuration section to come first
# amongst other perlloadmodule tests (<950), so we can test how
# mod_perl starts from vhost. but currently we can't because
# PerlSwitches from other tests are ignored, so the test suite fails
# to startup.
#
# tmp solution: ensure that it's configured *after* all other
# perlloadmodule tests
#
# APACHE_TEST_CONFIG_ORDER 951
Listen localhost:8549
<VirtualHost _default_:8549>
ServerName localhost:8549
PerlLoadModule TestDirective::perlloadmodule6
MyTest6 "Vhost"
<Location /TestDirective__perlloadmodule6>
MyTest6 "Dir"
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule6
</Location>
</Virtualhost>
<Location /TestDirective__perlloadmodule6>
SetHandler modperl
PerlResponseHandler TestDirective::perlloadmodule6
</Location>
Include "/usr/home/kiki/work/mod_perl-1.99_13/t/conf/extra.last.conf"
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: [mp2] Segmentation fault when starting Apache with mod_perl [Apache
2.0.49 / Perl 5.8.2 / mod_perl 1.99_13]
Posted by Stas Bekman <st...@stason.org>.
Kiki wrote:
> OK, I tried 1.99_13 with the same results. The build environment is the
> same as for 1.99_12 so I guess the same Bug Report Info applies here too (I
> can generate another bug report if you need it though)
No, no, that's fine. Hmm, I don't remember seeing mach reports before. Is that
Mach OS: http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html?
I think I've seen a similar trace with some older BSD variant (i think it was
openbsd 2.9), but I don't know enough to solve it :(
>> We are not aware of this problem, Kiki. You need to give us more matter
>> to be able to understand your problem. You don't have a problem to start
>> the modperl > test suite, do you?
>
>
> In fact any attempt to start apache with mod_perl (including the one in the
> test suite) causes a segmentation fault.
OK. Any chance you can try building perl with ithreads and then rebuild
mod_perl, and try again? It's a known problem with FreeBSD (which MachOS seems
to be a variant of?):
modperl-2.0/todo/bugs_build:
...
FreeBSD ?? DSO Works with non-threaded perl (4.8-RELEASE and
5.1-RELEASE)
http://marc.theaimsgroup.com/?l=apache-modperl&m=106399870822612&w=2
It doesn't work with threaded perl/worker mpm,
seemingly because of the problems with threads on
FreeBSD (not sure what version).
In any case please build perl with debug enabled, since your backtrace doesn't
show the arguments to the commands:
#0 0x290304f7 in Perl_newSVpvn ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
Here is how:
http://perl.apache.org/docs/2.0/user/help/help.html#Resolving_Segmentation_Faults
This part hints that there could be a problem with perlio.
#1 0x29081219 in PerlIO_open ()
from /usr/local/lib/perl5/5.8.2/mach/CORE/libperl.so
So it's possible that you will need to build perl w/o perlio. But first pleae
just try to disable threads.
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org