summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2017-03-17 17:59:11 +0100
committerDylan William Hardison <dylan@hardison.net>2017-03-17 21:52:47 +0100
commit8129958a06741dfb0f5016fe572f641e58a8df15 (patch)
treee3ca748c98ec06d32db8b2a70e7a4c4aa14d45fa
parent30a4049a81926036c7d8bc59c71c8493f57545b6 (diff)
downloadbugzilla-8129958a06741dfb0f5016fe572f641e58a8df15.tar.gz
bugzilla-8129958a06741dfb0f5016fe572f641e58a8df15.tar.xz
Bug 1347335 - Lifecycle of request cache begin at apache startup
-rw-r--r--Bugzilla.pm4
-rw-r--r--mod_perl.pl12
2 files changed, 10 insertions, 6 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm
index 55e416933..bd410364e 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -79,6 +79,10 @@ use constant SHUTDOWNHTML_RETRY_AFTER => 3600;
# Note that this is a raw subroutine, not a method, so $class isn't available.
sub init_page {
+ # This is probably not needed, but bugs resulting from a dirty
+ # request cache are very annoying (see bug 1347335)
+ # and this is not an expensive operation.
+ clear_request_cache();
if (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) {
init_console();
}
diff --git a/mod_perl.pl b/mod_perl.pl
index 29d9005c3..bbca30c2e 100644
--- a/mod_perl.pl
+++ b/mod_perl.pl
@@ -80,7 +80,7 @@ PerlChildInitHandler "sub { Bugzilla::RNG::srand(); srand(); }"
AddHandler perl-script .cgi
# No need to PerlModule these because they're already defined in mod_perl.pl
PerlResponseHandler Bugzilla::ModPerl::ResponseHandler
- PerlCleanupHandler Apache2::SizeLimit Bugzilla::ModPerl::CleanupHandler
+ PerlCleanupHandler Bugzilla::ModPerl::CleanupHandler Apache2::SizeLimit
PerlOptions +ParseHeaders
Options +ExecCGI +FollowSymLinks
AllowOverride Limit FileInfo Indexes
@@ -116,6 +116,11 @@ foreach my $file (glob "$cgi_path/*.cgi") {
$rl->handler($file, $file);
}
+# Some items might already be loaded into the request cache
+# best to make sure it starts out empty.
+# Because of bug 1347335 we also do this in init_page().
+Bugzilla::clear_request_cache();
+
package Bugzilla::ModPerl::ResponseHandler;
use strict;
use base qw(ModPerl::Registry);
@@ -160,11 +165,6 @@ sub handler {
my $r = shift;
Bugzilla::_cleanup();
- # Sometimes mod_perl doesn't properly call DESTROY on all
- # the objects in pnotes()
- foreach my $key (keys %{$r->pnotes}) {
- delete $r->pnotes->{$key};
- }
return Apache2::Const::OK;
}