deleteEqualMessages.php: Avoid "Transaction already in progress" warning

Set the $commit parameter of WikiPage::doDeleteArticle() to true so
the transaction it starts is explicitly committed. Also fixed similar
bugs in two other maintenance scripts.

Follows-up 02f17b5790.

Bug: T110189
Change-Id: Ifde98066e25cb616f23c8998f9461ebf7a2073d6
This commit is contained in:
Kevin Israel 2015-08-26 00:59:45 -04:00
parent 92602fefda
commit 49107fcc29
3 changed files with 6 additions and 8 deletions

View file

@ -97,7 +97,6 @@ class DeleteBatch extends Maintenance {
}
$this->output( $title->getPrefixedText() );
$dbw->begin( __METHOD__ );
if ( $title->getNamespace() == NS_FILE ) {
$img = wfFindFile( $title, array( 'ignoreRedirect' => true ) );
if ( $img && $img->isLocal() && !$img->delete( $reason ) ) {
@ -106,8 +105,7 @@ class DeleteBatch extends Maintenance {
}
$page = WikiPage::factory( $title );
$error = '';
$success = $page->doDeleteArticle( $reason, false, 0, false, $error, $user );
$dbw->commit( __METHOD__ );
$success = $page->doDeleteArticle( $reason, false, 0, true, $error, $user );
if ( $success ) {
$this->output( " Deleted!\n" );
} else {

View file

@ -76,10 +76,9 @@ class DeleteDefaultMessages extends Maintenance {
$dbw->ping();
$title = Title::makeTitle( $row->page_namespace, $row->page_title );
$page = WikiPage::factory( $title );
$dbw->begin( __METHOD__ );
$error = ''; // Passed by ref
$page->doDeleteArticle( 'No longer required', false, 0, false, $error, $user );
$dbw->commit( __METHOD__ );
// FIXME: Deletion failures should be reported, not silently ignored.
$page->doDeleteArticle( 'No longer required', false, 0, true, $error, $user );
}
$this->output( "done!\n", 'msg' );

View file

@ -182,14 +182,15 @@ class DeleteEqualMessages extends Maintenance {
$this->output( "\n* [[$title]]" );
$page = WikiPage::factory( $title );
$error = ''; // Passed by ref
$page->doDeleteArticle( 'No longer required', false, 0, false, $error, $user );
// FIXME: Deletion failures should be reported, not silently ignored.
$page->doDeleteArticle( 'No longer required', false, 0, true, $error, $user );
if ( $result['hasTalk'] && $doDeleteTalk ) {
$title = Title::makeTitle( NS_MEDIAWIKI_TALK, $result['title'] );
$this->output( "\n* [[$title]]" );
$page = WikiPage::factory( $title );
$error = ''; // Passed by ref
$page->doDeleteArticle( 'Orphaned talk page of no longer required message',
false, 0, false, $error, $user );
false, 0, true, $error, $user );
}
}
$this->output( "\n\ndone!\n" );