[Mediawiki-l] AntiBot throws Hook errors

Tim Starling tstarling at wikimedia.org
Mon Jun 27 00:35:39 UTC 2011


On 25/06/11 22:11, Bill Traynor wrote:
> Hooks.php:
> 129:  // Run autoloader (workaround for call_user_func_array bug)
> 130                is_callable( $callback );
> 131
> 132               /* Call the hook. */
> 133               wfProfileIn( $func );
> 134                $retval = call_user_func_array( $callback, $hook_args );
> 135                wfProfileOut( $func );
> 
> What bug is this workaround referring to?  I searched Bugzilla for
> "call_user_func_array" but didn't find anything.  Do I simply need to
> Upgrade?

The bug was in PHP, not MediaWiki.

Running the autoloader to resolve a class in call_user_func_array()
had at least one bug in it, possibly two. The known bug is that there
was a failure to expand an internal stack to allow enough space for
the autoloader call to take place, which occasionally led to a crash,
depending on stack depth and execution history.

We also saw a crash in very similar circumstances in a PHP version
where that bug was supposedly fixed. Both issues were observed in PHP
5.1.x, they're probably fixed in PHP 5.2.x. I don't think we've seen
any call_user_func_array() crashes since we switched to PHP 5.2.4.

-- Tim Starling




More information about the MediaWiki-l mailing list