From c67bfb7884e29bc7d3a8cfc6d0867eea9de42def Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Mon, 11 Apr 2011 16:42:23 +0000 Subject: [PATCH] commons.wikimedia: (SQL Query hidden) from within function "LinksUpdate::incrTableUpdate". Database returned error "1205: Lock wait timeout exceeded; try restarting transaction (10.0.6.41)". Per Krinkle on IRC --- includes/LinksUpdate.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/includes/LinksUpdate.php b/includes/LinksUpdate.php index a800fdfa07..c0bf543110 100644 --- a/includes/LinksUpdate.php +++ b/includes/LinksUpdate.php @@ -345,14 +345,21 @@ class LinksUpdate { $where = false; } } + + // Create and use a new loadBalancer object, to prevent "1205: Lock wait timeout exceeded;" + $lb = wfGetLBFactory()->newMainLB(); + $dbw = $lb->getConnection( DB_MASTER ); + if ( $where ) { - $this->mDb->delete( $table, $where, __METHOD__ ); + $dbw->delete( $table, $where, __METHOD__ ); } if ( count( $insertions ) ) { - $this->mDb->insert( $table, $insertions, __METHOD__, 'IGNORE' ); + $dbw->insert( $table, $insertions, __METHOD__, 'IGNORE' ); } - } + $lb->commitMasterChanges(); + $lb->closeAll(); + } /** * Get an array of pagelinks insertions for passing to the DB -- 2.20.1