diff options
author | Dylan William Hardison <dylan@hardison.net> | 2017-03-17 17:59:11 +0100 |
---|---|---|
committer | Dylan William Hardison <dylan@hardison.net> | 2017-03-17 21:52:47 +0100 |
commit | 8129958a06741dfb0f5016fe572f641e58a8df15 (patch) | |
tree | e3ca748c98ec06d32db8b2a70e7a4c4aa14d45fa | |
parent | 30a4049a81926036c7d8bc59c71c8493f57545b6 (diff) | |
download | bugzilla-8129958a06741dfb0f5016fe572f641e58a8df15.tar.gz bugzilla-8129958a06741dfb0f5016fe572f641e58a8df15.tar.xz |
Bug 1347335 - Lifecycle of request cache begin at apache startup
-rw-r--r-- | Bugzilla.pm | 4 | ||||
-rw-r--r-- | mod_perl.pl | 12 |
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; } |