Small doc fix to JobQueueRedis.
[lhc/web/wiklou.git] / includes / GlobalFunctions.php
index 1a4b985..0075bf5 100644 (file)
@@ -1093,16 +1093,29 @@ function wfDeprecated( $function, $version = false, $component = false, $callerO
 
 /**
  * Send a warning either to the debug log or in a PHP error depending on
- * $wgDevelopmentWarnings
+ * $wgDevelopmentWarnings. To log warnings in production, use wfLogWarning() instead.
  *
  * @param string $msg message to send
  * @param $callerOffset Integer: number of items to go back in the backtrace to
  *        find the correct caller (1 = function calling wfWarn, ...)
- * @param $level Integer: PHP error level; only used when $wgDevelopmentWarnings
- *        is true
+ * @param $level Integer: PHP error level; defaults to E_USER_NOTICE;
+ *        only used when $wgDevelopmentWarnings is true
  */
 function wfWarn( $msg, $callerOffset = 1, $level = E_USER_NOTICE ) {
-       MWDebug::warning( $msg, $callerOffset + 1, $level );
+       MWDebug::warning( $msg, $callerOffset + 1, $level, 'auto' );
+}
+
+/**
+ * Send a warning as a PHP error and the debug log. This is intended for logging
+ * warnings in production. For logging development warnings, use WfWarn instead.
+ *
+ * @param $msg String: message to send
+ * @param $callerOffset Integer: number of items to go back in the backtrace to
+ *        find the correct caller (1 = function calling wfLogWarning, ...)
+ * @param $level Integer: PHP error level; defaults to E_USER_WARNING
+ */
+function wfLogWarning( $msg, $callerOffset = 1, $level = E_USER_WARNING ) {
+       MWDebug::warning( $msg, $callerOffset + 1, $level, 'production' );
 }
 
 /**
@@ -2536,8 +2549,7 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
 
        if( !$ok ) {
                // PHP doesn't report the path in its warning message, so add our own to aid in diagnosis.
-               trigger_error( sprintf( "%s: failed to mkdir \"%s\" mode 0%o", __FUNCTION__, $dir, $mode ),
-                       E_USER_WARNING );
+               wfLogWarning( sprintf( "failed to mkdir \"%s\" mode 0%o", $dir, $mode ) );
        }
        return $ok;
 }
@@ -3177,7 +3189,7 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1, $lowercase = t
                return false;
        }
 
-       static $baseChars = array (
+       static $baseChars = array(
                10 => 'a', 11 => 'b', 12 => 'c', 13 => 'd', 14 => 'e', 15 => 'f',
                16 => 'g', 17 => 'h', 18 => 'i', 19 => 'j', 20 => 'k', 21 => 'l',
                22 => 'm', 23 => 'n', 24 => 'o', 25 => 'p', 26 => 'q', 27 => 'r',
@@ -3607,15 +3619,22 @@ function wfGetNull() {
  *
  * @param $maxLag Integer (deprecated)
  * @param $wiki mixed Wiki identifier accepted by wfGetLB
+ * @param $cluster string cluster name accepted by LBFactory
  */
-function wfWaitForSlaves( $maxLag = false, $wiki = false ) {
-       $lb = wfGetLB( $wiki );
+function wfWaitForSlaves( $maxLag = false, $wiki = false, $cluster = false ) {
+       $lb = ( $cluster !== false )
+               ? wfGetLBFactory()->getExternalLB( $cluster )
+               : wfGetLB( $wiki );
        // bug 27975 - Don't try to wait for slaves if there are none
        // Prevents permission error when getting master position
        if ( $lb->getServerCount() > 1 ) {
                $dbw = $lb->getConnection( DB_MASTER, array(), $wiki );
                $pos = $dbw->getMasterPos();
-               $lb->waitForAll( $pos );
+               // The DBMS may not support getMasterPos() or the whole
+               // load balancer might be fake (e.g. $wgAllDBsAreLocalhost).
+               if ( $pos !== false ) {
+                       $lb->waitForAll( $pos );
+               }
        }
 }
 
@@ -3855,7 +3874,7 @@ function wfRunHooks( $event, $args = array() ) {
  * @throws MWException if $data not long enough, or if unpack fails
  * @return array Associative array of the extracted data
  */
-function wfUnpack( $format, $data, $length=false ) {
+function wfUnpack( $format, $data, $length = false ) {
        if ( $length !== false ) {
                $realLen = strlen( $data );
                if ( $realLen < $length ) {