diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-12-27 14:19:08 -0800 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-12-27 14:19:08 -0800 |
commit | 606e568c35a5752560ee31e1be7f4b64fefe31cd (patch) | |
tree | d381aeae510091f39a6459ed2cb47059484de342 | |
parent | 9cfe048d1298e7be8db9b5c2a88abaae114b23a3 (diff) | |
download | bugs-606e568c35a5752560ee31e1be7f4b64fefe31cd.tar bugs-606e568c35a5752560ee31e1be7f4b64fefe31cd.tar.gz bugs-606e568c35a5752560ee31e1be7f4b64fefe31cd.tar.bz2 bugs-606e568c35a5752560ee31e1be7f4b64fefe31cd.tar.xz bugs-606e568c35a5752560ee31e1be7f4b64fefe31cd.zip |
Bug 599539: Update the mod_perl code for Apache2::SizeLimit 0.92
r=glob, a=mkanat
-rw-r--r-- | Bugzilla/Install/Requirements.pm | 18 | ||||
-rw-r--r-- | mod_perl.pl | 19 | ||||
-rw-r--r-- | template/en/default/pages/release-notes.html.tmpl | 4 |
3 files changed, 25 insertions, 16 deletions
diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index ea2b313fd..f629abeeb 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -319,8 +319,26 @@ sub OPTIONAL_MODULES { version => '1.999022', feature => ['mod_perl'], }, + { + package => 'Apache-SizeLimit', + module => 'Apache2::SizeLimit', + # 0.93 fixes problems on Linux and Windows, and changes the + # syntax used by SizeLimit. + version => '0.93', + feature => ['mod_perl'], + }, ); + if (ON_WINDOWS) { + # SizeLimit needs Win32::API to work on Windows. + push(@modules, { + package => 'Win32-API', + module => 'Win32::API', + version => 0, + feature => ['mod_perl'], + }); + } + my $extra_modules = _get_extension_requirements('OPTIONAL_MODULES'); push(@modules, @$extra_modules); return \@modules; diff --git a/mod_perl.pl b/mod_perl.pl index 15dec263a..abd018103 100644 --- a/mod_perl.pl +++ b/mod_perl.pl @@ -44,32 +44,23 @@ use Bugzilla::Util (); # Pre-compile the CGI.pm methods that we're going to use. Bugzilla::CGI->compile(qw(:cgi :push)); -my ($sizelimit, $maxrequests) = ('', ''); -if (Bugzilla::Constants::ON_WINDOWS) { - $maxrequests = "MaxRequestsPerChild 25"; -} -else { - require Apache2::SizeLimit; - # This means that every httpd child will die after processing - # a CGI if it is taking up more than 70MB of RAM all by itself. - $Apache2::SizeLimit::MAX_UNSHARED_SIZE = 70000; - $sizelimit = "PerlCleanupHandler Apache2::SizeLimit"; -} +use Apache2::SizeLimit; +# This means that every httpd child will die after processing +# a CGI if it is taking up more than 70MB of RAM all by itself. +Apache2::SizeLimit->set_max_unshared_size(70_000); my $cgi_path = Bugzilla::Constants::bz_locations()->{'cgi_path'}; # Set up the configuration for the web server my $server = Apache2::ServerUtil->server; my $conf = <<EOT; -$maxrequests # Make sure each httpd child receives a different random seed (bug 476622) PerlChildInitHandler "sub { srand(); }" <Directory "$cgi_path"> AddHandler perl-script .cgi # No need to PerlModule these because they're already defined in mod_perl.pl PerlResponseHandler Bugzilla::ModPerl::ResponseHandler - PerlCleanupHandler Bugzilla::ModPerl::CleanupHandler - $sizelimit + PerlCleanupHandler Apache2::SizeLimit Bugzilla::ModPerl::CleanupHandler PerlOptions +ParseHeaders Options +ExecCGI AllowOverride Limit FileInfo Indexes diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl index 2b702a05e..445cd7966 100644 --- a/template/en/default/pages/release-notes.html.tmpl +++ b/template/en/default/pages/release-notes.html.tmpl @@ -98,8 +98,8 @@ <h3 id="v40_req_modules">Required Perl Modules</h3> [% INCLUDE req_table reqs = REQUIRED_MODULES - new = ['List-MoreUtils'] - updated = ['Email-MIME', 'CGI.pm'] %] + new = ['List-MoreUtils', 'Win32-API'] + updated = ['Email-MIME', 'CGI.pm', 'Apache-SizeLimit'] %] <h3 id="v40_req_optional_mod">Optional Perl Modules</h3> |