Reverted r58646 as per my comments on bug 20554.
authorTim Starling <tstarling@users.mediawiki.org>
Tue, 1 Dec 2009 01:55:04 +0000 (01:55 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Tue, 1 Dec 2009 01:55:04 +0000 (01:55 +0000)
RELEASE-NOTES
includes/GlobalFunctions.php
includes/Wiki.php
includes/api/ApiBase.php
includes/api/ApiHelp.php
includes/api/ApiMain.php
includes/api/ApiQuery.php
includes/api/ApiQuerySiteinfo.php
includes/db/LoadBalancer.php
index.php

index 75113ca..6f1c468 100644 (file)
@@ -718,7 +718,6 @@ Hopefully we will remove this configuration var soon)
 * (bug 19004) Added support for tags
 * (bug 21083) list=allusers no longer returns current timestamp for users
   without registration date
-* (bug 20554) Expose average slave lag (avglag) as well as maxlag
 * (bug 20967) action=edit allows creation of invalid titles
 * (bug 19523) Add inprop=watched to prop=info
 * (bug 21589) API: Separate summary and initial page text for uploads
index 53e0b87..57c33c4 100644 (file)
@@ -3081,21 +3081,6 @@ function wfMaxlagError( $host, $lag, $maxLag ) {
        }
 }
 
-/**
- * Displays a avglag error
- *
- * @param $lag Integer: avglag (actual)
- * @param $avgLag Integer: avglag (requested)
- */
-function wfAvglagError( $lag, $avgLag ) {
-       header( 'HTTP/1.1 503 Service Unavailable' );
-       header( 'Retry-After: ' . max( intval( $avgLag ), 5 ) );
-       header( 'X-Database-Lag: ' . intval( $lag ) );
-       header( 'Content-Type: text/plain' );
-
-       echo "Lagged: $lag seconds average\n";
-}
-
 /**
  * Throws a warning that $function is deprecated
  * @param $function String
index e3924a1..ffa9dd4 100644 (file)
@@ -95,24 +95,6 @@ class MediaWiki {
                        return true;
                }
        }
-       
-       /**
-        * Check if the average lag of database slaves is higher that $avgLag, and
-        * if it's the case, output an error message
-        *
-        * @param $avgLag int: maximum lag allowed for the request, as supplied by
-        *                the client
-        * @return bool true if the request can continue
-        */
-       function checkAvgLag( $avgLag ) {
-               list( $host, $lag ) = wfGetLB()->getAvgLag();
-               if( $lag > $avgLag ) {
-                       wfAvglagError( $lag, $avgLag );
-                       return false;
-               } else {
-                       return true;
-               }
-       }
 
        /**
         * Checks some initial queries
index 0d1db32..dd496b8 100644 (file)
@@ -935,14 +935,6 @@ abstract class ApiBase {
        public function shouldCheckMaxlag() {
                return true;
        }
-       
-       /**
-        * Indicates if this module needs avglag to be checked
-        * @return bool
-        */
-       public function shouldCheckAvglag() {
-               return true;
-       }
 
        /**
         * Indicates whether this module requires read rights
index 0200062..982bf4d 100644 (file)
@@ -49,10 +49,6 @@ class ApiHelp extends ApiBase {
        public function shouldCheckMaxlag() {
                return false;
        }
-       
-       public function shouldCheckAvglag() {
-               return false;
-       }
 
        public function isReadMode() {
                return false;
index e930e7f..6867193 100644 (file)
@@ -394,20 +394,6 @@ class ApiMain extends ApiBase {
                                return;
                        }
                }
-               
-               if( $module->shouldCheckAvglag() && isset( $params['avglag'] ) ) {
-                       // Check for avglag
-                       global $wgShowHostnames;
-                       $avgLag = $params['avglag'];
-                       $lag = wfGetLB()->getAvgLag();
-                       if ( $lag > $avgLag ) {
-                               header( 'Retry-After: ' . max( intval( $avgLag ), 5 ) );
-                               header( 'X-Database-Lag: ' . intval( $lag ) );
-
-                               $this->dieUsage( "Lag: $lag seconds average", 'avglag' );
-                               return;
-                       }
-               }
 
                global $wgUser;
                if ($module->isReadMode() && !$wgUser->isAllowed('read'))
@@ -491,9 +477,6 @@ class ApiMain extends ApiBase {
                        'maxlag'  => array (
                                ApiBase :: PARAM_TYPE => 'integer'
                        ),
-                       'avglag'  => array (
-                               ApiBase :: PARAM_TYPE => 'integer'
-                       ),
                        'smaxage' => array (
                                ApiBase :: PARAM_TYPE => 'integer',
                                ApiBase :: PARAM_DFLT => 0
@@ -515,7 +498,6 @@ class ApiMain extends ApiBase {
                        'action' => 'What action you would like to perform',
                        'version' => 'When showing help, include version for each module',
                        'maxlag' => 'Maximum lag',
-                       'avglag' => 'Average lag',
                        'smaxage' => 'Set the s-maxage header to this many seconds. Errors are never cached',
                        'maxage' => 'Set the max-age header to this many seconds. Errors are never cached',
                        'requestid' => 'Request ID to distinguish requests. This will just be output back to you',
index f2e90b1..e15edb6 100644 (file)
@@ -548,10 +548,6 @@ class ApiQuery extends ApiBase {
        public function shouldCheckMaxlag() {
                return true;
        }
-       
-       public function shouldCheckAvglag() {
-               return true;
-       }
 
        public function getParamDescription() {
                return array (
index 287887b..8439e47 100644 (file)
@@ -295,7 +295,6 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        );
                }
 
-               $data['avglag'] = wfGetLB()->getAvgLag();
                $result = $this->getResult();
                $result->setIndexedTagName( $data, 'db' );
                return $this->getResult()->addValue( 'query', $property, $data );
index 5e91f1e..0b8ef05 100644 (file)
@@ -898,27 +898,6 @@ class LoadBalancer {
                }
                return array( $host, $maxLag );
        }
-       
-       /**
-        * Gets the average lag of slaves.
-        * May attempt to open connections to slaves on the default DB.
-        */
-       function getAvgLag() {
-               $lag = 0;
-               $count = 0;
-               foreach ( $this->mServers as $i => $conn ) {
-                       $conn = $this->getAnyOpenConnection( $i );
-                       if ( !$conn ) {
-                               $conn = $this->openConnection( $i );
-                       }
-                       if ( !$conn ) {
-                               continue;
-                       }
-                       $lag += $conn->getLag();
-                       $count++;
-               }
-               return ($count > 1) ? $lag / $count : $lag;
-       }
 
        /**
         * Get lag time for each server
index bbc77e5..1cbba1e 100644 (file)
--- a/index.php
+++ b/index.php
@@ -53,11 +53,6 @@ if( !is_null( $maxLag ) && !$mediaWiki->checkMaxLag( $maxLag ) ) {
        exit;
 }
 
-$avgLag = $wgRequest->getVal( 'avglag' );
-if( !is_null( $avgLag ) && !$mediaWiki->checkAvgLag( $avgLag ) ) {
-       exit;
-}
-
 # Query string fields
 $action = $wgRequest->getVal( 'action', 'view' );
 $title = $wgRequest->getVal( 'title' );