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