Make safeWaitForMasterPos() use mWaitTimeout instead of hard-coded value
authorAaron Schulz <aschulz@wikimedia.org>
Mon, 12 Sep 2016 20:57:22 +0000 (13:57 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Mon, 12 Sep 2016 20:57:22 +0000 (13:57 -0700)
Change-Id: Idd5db66f5e7cea9fc3f3a4f47bd38e08e42559f6

includes/db/loadbalancer/LoadBalancer.php

index 42044a7..96ae2e7 100644 (file)
@@ -1662,11 +1662,11 @@ class LoadBalancer {
         *
         * @param IDatabase $conn Replica DB
         * @param DBMasterPos|bool $pos Master position; default: current position
-        * @param integer $timeout Timeout in seconds
+        * @param integer|null $timeout Timeout in seconds [optional]
         * @return bool Success
         * @since 1.27
         */
-       public function safeWaitForMasterPos( IDatabase $conn, $pos = false, $timeout = 10 ) {
+       public function safeWaitForMasterPos( IDatabase $conn, $pos = false, $timeout = null ) {
                if ( $this->getServerCount() == 1 || !$conn->getLBInfo( 'replica' ) ) {
                        return true; // server is not a replica DB
                }
@@ -1676,6 +1676,7 @@ class LoadBalancer {
                        return false; // something is misconfigured
                }
 
+               $timeout = $timeout ?: $this->mWaitTimeout;
                $result = $conn->masterPosWait( $pos, $timeout );
                if ( $result == -1 || is_null( $result ) ) {
                        $msg = __METHOD__ . ": Timed out waiting on {$conn->getServer()} pos {$pos}";