Page MenuHomePhabricator

wfArrayDiff2_cmp noisy
Closed, ResolvedPublic

Description

Warning: strcmp() expects parameter 1 to be string, array given in /usr/local/apache/common-local/php-1.22wmf19/includes/GlobalFunctions.php on line 134

No idea on the cause but there's quite a few of them appearing in wmf19


Version: master
Severity: normal

Details

Reference
bz54662

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 2:19 AM
bzimport added a project: GlobalBlocking.
bzimport set Reference to bz54662.
bzimport added a subscriber: Unknown Object (MLST).

25 Warning: strcmp() expects parameter 1 to be string, array given in /usr/local/apache/common-local/php-1.22wmf19/includes/GlobalFunctions.php on line 134
5 Warning: Variable passed to each() is not an array or object in /usr/local/apache/common-local/php-1.22wmf19/includes/GlobalFunctions.php on line 133
5 Warning: strcmp() expects parameter 2 to be string, array given in /usr/local/apache/common-local/php-1.22wmf19/includes/GlobalFunctions.php on line 127
5 Warning: reset() expects parameter 1 to be array, string given in /usr/local/apache/common-local/php-1.22wmf19/includes/GlobalFunctions.php on line 132

Assigning to me as a TODO for post sleep. This is very noisy on just the "test" wikis, so cluster wide it's going to be awful.

Need to hack in some debugging to get a stack trace and find out where it's coming from...

reedy@tin:/a/common/php-1.22wmf19/includes$ git diff
diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php
index 414c822..23e75ff 100644

  • a/includes/GlobalFunctions.php

+++ b/includes/GlobalFunctions.php
@@ -123,6 +123,10 @@ function wfArrayDiff2( $a, $b ) {

  • @return int */ function wfArrayDiff2_cmp( $a, $b ) {

+ if( is_array( $a ) || is_array( $b ) ) {
+ var_dump( $a, $b );
+ debug_print_backtrace();
+ }

if ( !is_array( $a ) ) {
        return strcmp( $a, $b );
} elseif ( count( $a ) !== count( $b ) ) {

Except that won't put the info anywhere useful. Bed time.

Pushing to page editing, will do some more digging

2013-09-27 18:05:46 mw1112 mediawikiwiki: require/MediaWiki::run/MediaWiki::main/MediaWiki::performRequest/MediaWiki::performAction/EditAction::show/EditPage::edit/EditPage::getEditPermissionErrors/wfArrayDiff2/array_udiff/wfArrayDiff2_cmp

Moving to GlobalBlocking based on the content of the message keys, thought it maybe should be WikimediaMessages as they would look to be causing the problem

			wfRunHooks( 'GlobalBlockingBlockedIpMsg', array( &$blockedIpMsg ) );
			return $result = array( $blockedIpMsg,
				$blockingUser, $display_wiki, $block->gb_reason, $blockTimestamp, $blockExpiry, $ip );

function efWikimediaGlobalBlockingBlockedIpMsg( &$msg ) {
$msg = array( 'wikimedia-globalblocking-ipblocked' );
return true;
}

Looks like the same issue will occur in TorBlock

Change 86296 had a related patch set uploaded by Reedy:
Fix up noise in wfArrayDiff2_cmp due to messages being wrapped in an array

https://gerrit.wikimedia.org/r/86296

Change 86298 had a related patch set uploaded by Reedy:
In wfArrayDiff2_cmp only compare $a and $b as string if they both are strings

https://gerrit.wikimedia.org/r/86298

Change 86296 merged by jenkins-bot:
Fix up noise in wfArrayDiff2_cmp due to messages being wrapped in an array

https://gerrit.wikimedia.org/r/86296

Change 86298 merged by Adamw:
In wfArrayDiff2_cmp only compare $a and $b as string if they both are strings

https://gerrit.wikimedia.org/r/86298