From: Aaron Schulz Date: Fri, 17 Apr 2015 05:15:46 +0000 (-0700) Subject: Made wfWaitForSlaves check all master connections for writes X-Git-Tag: 1.31.0-rc.0~11674^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/%7B%7B%20url_for%28%27admin_users%27%29%20%7D%7D?a=commitdiff_plain;h=95cfa54557530551cf8f8052f474f4f2f0b2cc88;p=lhc%2Fweb%2Fwiklou.git Made wfWaitForSlaves check all master connections for writes * Previously it just checked the main connection Change-Id: If63498e4fa2800f8ffbde4c570c556f21b554473 --- 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;