From: Max Kanat-Alexander Date: Mon, 27 Dec 2010 22:20:34 +0000 (-0800) Subject: Bug 599539: Update the mod_perl.pl code for Apache2::SizeLimit 0.93 X-Git-Tag: bugzilla-4.0rc2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7571ed28c168fd195f4eca44e15f313f1b5091ae;p=thirdparty%2Fbugzilla.git Bug 599539: Update the mod_perl.pl code for Apache2::SizeLimit 0.93 r=glob, a=mkanat --- diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index 77ac0ef448..dd661a9b0e 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 32fe82ccfe..4a25d0c613 100644 --- a/mod_perl.pl +++ b/mod_perl.pl @@ -46,32 +46,23 @@ use Bugzilla::Mailer (); use Bugzilla::Template (); use Bugzilla::Util (); -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 = < 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 2b702a05ec..445cd79663 100644 --- a/template/en/default/pages/release-notes.html.tmpl +++ b/template/en/default/pages/release-notes.html.tmpl @@ -98,8 +98,8 @@

Required Perl Modules

[% 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'] %]

Optional Perl Modules