X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FMediaWiki.php;h=55f9e9ea8db7a1b6df650ce797bc715cc7f61164;hb=d9210c5cd485025581b0467864bf406effbb71f1;hp=ad02e68bb531215fc90dd8ecdfbb69d9dd7857fc;hpb=a5b975edd132e52ee8ce1c725d8195da941c8b7b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/MediaWiki.php b/includes/MediaWiki.php index ad02e68bb5..55f9e9ea8d 100644 --- a/includes/MediaWiki.php +++ b/includes/MediaWiki.php @@ -487,6 +487,7 @@ class MediaWiki { $trxProfiler = Profiler::instance()->getTransactionProfiler(); if ( $request->wasPosted() && !$action->doesWrites() ) { $trxProfiler->setExpectations( $trxLimits['POST-nonwrite'], __METHOD__ ); + $request->markAsSafeRequest(); } # Let CDN cache things if we can purge them. @@ -585,6 +586,13 @@ class MediaWiki { $request->response()->header( "X-Database-Lagged: true" ); wfDebugLog( 'replication', "Lagged DB used; CDN cache TTL limited to $maxAge seconds" ); } + + // Avoid long-term cache pollution due to message cache rebuild timeouts (T133069) + if ( MessageCache::singleton()->isDisabled() ) { + $maxAge = $config->get( 'CdnMaxageSubstitute' ); + $context->getOutput()->lowerCdnMaxage( $maxAge ); + $request->response()->header( "X-Response-Substitute: true" ); + } } /** @@ -659,10 +667,10 @@ class MediaWiki { $trxLimits = $this->config->get( 'TrxProfilerLimits' ); $trxProfiler = Profiler::instance()->getTransactionProfiler(); $trxProfiler->setLogger( LoggerFactory::getInstance( 'DBPerformance' ) ); - if ( $request->wasPosted() ) { - $trxProfiler->setExpectations( $trxLimits['POST'], __METHOD__ ); - } else { + if ( $request->hasSafeMethod() ) { $trxProfiler->setExpectations( $trxLimits['GET'], __METHOD__ ); + } else { + $trxProfiler->setExpectations( $trxLimits['POST'], __METHOD__ ); } // If the user has forceHTTPS set to true, or if the user