From 8b9aac24943aca608b165cb04ae79b36ac0541a6 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 8 Jun 2016 10:47:53 -0700 Subject: [PATCH] Add "PostSend" limits to $wgTrxProfilerLimits This makes post-send updates subject to logging, like other updates in POST requests. Previously, slow queries were ignored. Bug: T137326 Change-Id: Ia08f51a10b7b1fae3350f5c5215fab234edefada --- includes/DefaultSettings.php | 6 ++++++ includes/MediaWiki.php | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 0fe3388550..7892a987c3 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5978,6 +5978,12 @@ $wgTrxProfilerLimits = [ 'writes' => 0, 'readQueryTime' => 5 ], + // Deferred updates that run after HTTP response is sent + 'PostSend' => [ + 'readQueryTime' => 5, + 'writeQueryTime' => 1, + 'maxAffected' => 500 + ], // Background job runner 'JobRunner' => [ 'readQueryTime' => 30, diff --git a/includes/MediaWiki.php b/includes/MediaWiki.php index ee03f020a8..21857b9e13 100644 --- a/includes/MediaWiki.php +++ b/includes/MediaWiki.php @@ -764,9 +764,13 @@ class MediaWiki { // Assure deferred updates are not in the main transaction wfGetLBFactory()->commitMasterChanges( __METHOD__ ); - // Ignore things like master queries/connections on GET requests - // as long as they are in deferred updates (which catch errors). - Profiler::instance()->getTransactionProfiler()->resetExpectations(); + // Loosen DB query expectations since the HTTP client is unblocked + $trxProfiler = Profiler::instance()->getTransactionProfiler(); + $trxProfiler->resetExpectations(); + $trxProfiler->setExpectations( + $this->config->get( 'TrxProfilerLimits' )['PostSend'], + __METHOD__ + ); // Do any deferred jobs DeferredUpdates::doUpdates( 'enqueue' ); -- 2.20.1