]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 532318: In mod_perl on Windows, instead of using Apache2::SizeLimit, just set...
authorMichael Thomas <mockodin@gmail.com>
Mon, 1 Feb 2010 20:34:58 +0000 (12:34 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Mon, 1 Feb 2010 20:34:58 +0000 (12:34 -0800)
Patch by Michael Thomas <mockodin@gmail.com> r=mkanat, a=mkanat

mod_perl.pl

index dac8622c80207b239b0fd660eee886a65aea47ac..a21d5d725b5187c2e52aab66567a8c45edb7b005 100755 (executable)
@@ -29,7 +29,6 @@ use strict;
 # file.
 
 use Apache2::ServerUtil;
-use Apache2::SizeLimit;
 use ModPerl::RegistryLoader ();
 use CGI ();
 CGI->compile(qw(:cgi -no_xhtml -oldstyle_urls :private_tempfiles
@@ -47,15 +46,24 @@ use Bugzilla::Mailer ();
 use Bugzilla::Template ();
 use Bugzilla::Util ();
 
-# 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;
+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";
+}
 
 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">
@@ -63,7 +71,7 @@ PerlChildInitHandler "sub { srand(); }"
     # No need to PerlModule these because they're already defined in mod_perl.pl
     PerlResponseHandler Bugzilla::ModPerl::ResponseHandler
     PerlCleanupHandler  Bugzilla::ModPerl::CleanupHandler
-    PerlCleanupHandler  Apache2::SizeLimit
+    $sizelimit
     PerlOptions +ParseHeaders
     Options +ExecCGI
     AllowOverride Limit