From 3de5d02d2c725942cea630e141338a5218e0ebe9 Mon Sep 17 00:00:00 2001 From: daniel Date: Wed, 10 Sep 2014 19:40:25 +0200 Subject: [PATCH] Do deletion updates after commit. WikiPage::doDeleteArticleReal now triggers secondary data updates (link tables, etc) only after the deletion proper is committed. This is consistent with the way doEditContent applies secondary data updates, and avoids nested transactions (e.g. by one of the updates using a retry loop). Change-Id: Ie4d96f77d210c9953104a0e6fb11ea8ed348c42a --- includes/page/WikiPage.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index b62f40da5c..9ade16e5af 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -2876,8 +2876,6 @@ class WikiPage implements Page, IDBAccessObject { // Clone the title, so we have the information we need when we log $logTitle = clone $this->mTitle; - $this->doDeleteUpdates( $id, $content ); - // Log the deletion, if the page was suppressed, log it at Oversight instead $logtype = $suppress ? 'suppress' : 'delete'; @@ -2896,6 +2894,8 @@ class WikiPage implements Page, IDBAccessObject { $dbw->commit( __METHOD__ ); } + $this->doDeleteUpdates( $id, $content ); + wfRunHooks( 'ArticleDeleteComplete', array( &$this, &$user, $reason, $id, $content, $logEntry ) ); $status->value = $logid; return $status; -- 2.20.1