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