From 95cfa54557530551cf8f8052f474f4f2f0b2cc88 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 16 Apr 2015 22:15:46 -0700 Subject: [PATCH] Made wfWaitForSlaves check all master connections for writes * Previously it just checked the main connection Change-Id: If63498e4fa2800f8ffbde4c570c556f21b554473 --- includes/GlobalFunctions.php | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 3931be369a..90460fdc09 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -3766,20 +3766,14 @@ function wfWaitForSlaves( // time needed to wait on the next clusters. $masterPositions = array_fill( 0, count( $lbs ), false ); foreach ( $lbs as $i => $lb ) { - // bug 27975 - Don't try to wait for slaves if there are none - // Prevents permission error when getting master position - if ( $lb->getServerCount() > 1 ) { - if ( $ifWritesSince && !$lb->hasMasterConnection() ) { - continue; // assume no writes done - } - // Use the empty string to not trigger selectDB() since the connection - // may have been to a server that does not have a DB for the current wiki. - $dbw = $lb->getConnection( DB_MASTER, array(), '' ); - if ( $ifWritesSince && $dbw->lastDoneWrites() < $ifWritesSince ) { - continue; // no writes since the last wait - } - $masterPositions[$i] = $dbw->getMasterPos(); + if ( $lb->getServerCount() <= 1 ) { + // Bug 27975 - Don't try to wait for slaves if there are none + // Prevents permission error when getting master position + continue; + } elseif ( $ifWritesSince && $lb->lastMasterChangeTimestamp() < $ifWritesSince ) { + continue; // no writes since the last wait } + $masterPositions[$i] = $lb->getMasterPos(); } $ok = true; -- 2.20.1