Commit 606e568c authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 599539: Update the mod_perl code for Apache2::SizeLimit 0.92

r=glob, a=mkanat
parent 9cfe048d
......@@ -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;
......
......@@ -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
......
......@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment