Page MenuHomePhabricator

wfGetCaller's call to debug_backtrace fails sometimes (apache 500 error)
Closed, ResolvedPublic

Description

Author: bubbadiden

Description:
I have a mediawiki site hosted by bluehost.com and all of a sudden I started
getting apache 500 errors on a mediawiki site that was not modified. bluehost
is using php 5.1.6 and apache 1.3.37 on linux 2.6.17-11_4.BHsmp, mysql
4.1.21-standard-log. bluehost says they didn't change anything (php binary
itself has not changed).

Playing around with a separate installation on my bluehost site, I narrowed it
down to wfGetCaller in includes/GlobalFunctions.php. In particular, the
debug_backtrace call can fail. This is, I believe, a builtin C function for
php, but I'm not sure what else I can do at this point and maybe someone else
can get some more info in case this error starts becoming more widespread.

For now, I guess I can just have wfGetCaller return "unknown" and hence bypass
the call to debug_backtrace, but there's something more (and interesting) going
on here.

I'm sorry, but I don't have an explicit test case right now - if there's
something else I can spit out before the debug_backtrace call (which has no
arguments to report here) that might be useful let me know.


Version: 1.8.x
Severity: normal
OS: Linux
Platform: PC

Details

Reference
bz8041

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 9:29 PM
bzimport set Reference to bz8041.
bzimport added a subscriber: Unknown Object (MLST).

bubbadiden wrote:

Searching the php bug database, maybe the behavior I am seeing is because of
http://bugs.php.net/bug.php?id=39445, which was fixed recently.

martinpre wrote:

*** Bug 8238 has been marked as a duplicate of this bug. ***

ayg wrote:

*** Bug 8459 has been marked as a duplicate of this bug. ***

Zend Optimizer turns out to be the trigger on this one.

I _think_ it's related to the use of stub objects and the funny object tricks
therein, but haven't found a minimal test case.

In r18774, debug_backtrace() is wrapped with a wfDebugBacktrace() function which
checks for the presence of this extension and returns an empty array if it's loaded.

Better, of course, would be Zend fixing their software. ;)

pavka wrote:

Well, I tried this and it still doesn´t work. Any other ideas?

  • Bug 8113 has been marked as a duplicate of this bug. ***